异或左右与内外获取方向,其余遍历即可
#include<bits/stdc++.h>
using namespace std;int main(){
int n,m,target=0;
int num;
string job;
cin>>n>>m;
vector<pair<int,string>> wanju;
for(int i=0;i<n;i++){
cin>>num>>job;
wanju.push_back(pair<int,string>(num,job));
}
int size=wanju.size()-1;
for(int i=0;i<m;i++){
int ai,si;
cin>>ai>>si;
int dir=wanju[target].first;
si%=(size+1);
if(dir^ai){
if(target+si<=size)
target+=si;
else{target=target+si-(size+1);}
}
else{if(target-si>=0)
target-=si;
else{target=target-si+(size+1);}}
}
cout<<wanju[target].second;
}