记录编号 |
462945 |
评测结果 |
AAAAAAAWAAAAAAAAAAAA |
题目名称 |
[NOIP 2016]玩具谜题 |
最终得分 |
95 |
用户昵称 |
ユッキー |
是否通过 |
未通过 |
代码语言 |
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;
}