#include<stdio.h>
struct people//创建一个表明身份的结构体
{
int face;//朝内0,朝外1
char statues[1000];//储存不同的身份
};
int main()
{
int n=0;//n个人
int m=0;//m条指令
int i=0;
scanf("%d %d",&n,&m);
struct people person[200000];//创建具体结构体数组
for(i=0;i<n;i++)
{
scanf("%d",&person[i].face);
scanf("%s",&person[i].statues);
}
int start=0;//明确起始点从零开始
int order[200001][2]={0};//创建一个指令数组
for(i=0;i<m;i++)
{
scanf("%d %d",&order[i][0],&order[i][1]);
//order[i][0]表示左0右1
//order[i][1]表示前进几步
switch(order[i][0])
{
case 0://向左走
{
//判断朝内朝外
switch(person[start].face)
{
case 0:
{
start-=order[i][1];
while(start<0)
{
start+=n;
}//实际上他们围成了一个圈,并非线性
break;
}
case 1:
{
start+=order[i][1];
while(start>n-1)
{
start-=n;
}
break;
}
}
break;
}
case 1://向右走
{
switch(person[start].face)
{
case 0:
{
start+=order[i][1];
while(start>n-1)
{
start-=n;
}
break;
}
case 1:
{
start-=order[i][1];
while(start<0)
{
start+=n;
}
break;
}
}
break;
}
}
}
printf("%s",person[start].statues);
return 0;
}
牛客1010-[NOIP2016]玩具谜题 c语言题解
最新推荐文章于 2024-08-12 08:24:08 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)