代码
1、每个玩具人的朝向用结构体来存储
2、对于每个命令,如果其方向和玩具人的朝向一样的话就向数组减小方向移动,反之往数组增大方向移动,注意判断移动越界的情况,另加处理。
#include<bits/stdc++.h>
using namespace std;
struct People{
int toward;
string job;
};
int main(){
int n,m,i,j=0,a,b;
People people[100000];
cin>>n>>m;
for(i=0;i<n;i++)
cin>>people[i].toward>>people[i].job;
for(i=0;i<m;i++){
cin>>a>>b;
if(a==people[j].toward){
if(j-b>=0) j-=b;
else j=n+(j-b)%n;
}else{
if(j+b<n) j+=b;
else j=(j+b)%n;
}
}
cout<<people[j].job;
return 0;
}