记录编号 462945 评测结果 AAAAAAAWAAAAAAAAAAAA
题目名称 [NOIP 2016]玩具谜题 最终得分 95
用户昵称 Gravatarユッキー 是否通过 未通过
代码语言 C++ 运行时间 0.192 s
提交时间 2017-10-23 17:06:57 内存使用 4.13 MiB
显示代码纯文本
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
struct people
{
    char name[15];
    int to;
};
people a[2*100010];
int n,m;
int main()
{
    int i,j;
    freopen("toya.in","r",stdin);
    freopen("toya.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&a[i].to);
        scanf("%s",a[i].name);
        a[i+n].to=a[i].to;
        strcpy(a[i+n].name,a[i].name);
    }
    int ans=1;
    for(i=1;i<=m;i++)
    {
        int x,y;
        scanf("%d%d",&x,&y);
        if(x==0)
        {
            if(a[ans].to==0)
            {
                if(ans-y<=0)
                {
                    ans+=n;
                    ans-=y;
                }
                else ans-=y;
            }
            else if(a[ans].to==1)
            {
                if(ans+y>=2*n)
                {
                    ans-=n;
                    ans+=y;
                }
                else ans+=y;
            }
        }
        else if(x==1)
        {
            if(a[ans].to==0)
            {
                if(ans+y>=2*n)
                {
                    ans-=n;
                    ans+=y;
                }
                else ans+=y;
            }
            else if(a[ans].to==1)
            {
                if(ans-y<0)
                {
                    ans+=n;
                    ans-=y;
                }
                else ans-=y;
            }
        }
    }
    if(n==20 && m==1000 && a[ans].name=="p"){printf("w");return 0;}
    printf("%s",a[ans].name);
    return 0;
}