题解 P1563 【玩具谜题】
新手一枚,才看到题目的时候有点怕(毕竟提高组),但实际上还是很简单的。
附代码:
#include<stdio.h>
struct model{
int dir;
char name[11];
}toy[100010];
struct does{
int side,s;
}com[100010];
int now=1,n,m;
void go(int dir,int side,int s)
{
int flag,dis=dir+side;
if(dis==1)flag=1;
else flag=0;
if(flag)
{
if(now+s>n)now+=s-n;
else now+=s;
}
else
{
if(now-s<=0)now+=n-s;
else now-=s;
}
}
int main()
{
int i;
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)scanf("%d %s",&toy[i].dir,toy[i].name);
for(i=1;i<=m;i++)scanf("%d %d",&com[i].side,&com[i].s);
for(i=1;i<=m;i++)go(toy[now].dir,com[i].side,com[i].s);
printf("%s",toy[now].name);
return 0;
}
(没用cin/cout是怕超时)
(话说好多人超时,为什么我的代码92ms过了,难道评测系统性能比以前好了?)