```
#include<bits/stdc++.h>
using namespace std;
struct xr
{
string job;//职业
int nw;//内外
}a[10000000];
int main(){
//正常输入
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i].nw>>a[i].job;
}
//当前这个人的下标
int now=1;
//内:左-1,右+1;外:左+1,右-1
for(int i=1;i<=m;i++)
{
int fx,len;
cin>>fx>>len;
//根据首末跳跃数组收尾
if(now<1)now=n-(0-now);
if(now>n)now=now%n;
//根据方向和内外判断
if(a[now].nw==0)
{
if(fx==0)now-=len;
if(fx==1)now+=len;
}
else if(a[now].nw==1)
{
if(fx==0)now+=len;
if(fx==1)now-=len;
}
//根据首末跳跃数组收尾(可以只用一次
if(now<1)now=n-(0-now);
if(now>n)now=now%n;
}
//正常输出
cout<<a[now].job;
return 0;
}
```
按理来说,你的输入应该没问题
by Max6700 @ 2023-09-10 13:58:42