虽然样例都过不了...但是搞不懂哪里错了┭┮﹏┭┮
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,m;
struct re{
int nw;//朝向内外0表示朝向圈内,1表示朝向圈外
string s;//玩具名称
}k[N];
int aa;//0是向左数1是向右数
int ss;//向左或向右数几个人
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>k[i].nw>>k[i].s;
int ff=1;
while(m--){
cin>>aa>>ss;
if(k[ff].nw==0){//朝内的情况
for(int i=1;i<=ss;i++){
if(aa==0){//朝内向左(向上)
if(ff==1) ff=n;
else ff--;//!!!!!
}
else{//朝内向右(向下)
if(ff==n) ff=1;
else ff++;//!!!!!
}
}
}
else{//朝外的情况
for(int i=1;i<=ss;i++){
if(aa=0){//朝外向左(向下)
if(ff==n) ff=1;
else ff++;//!!!!!
}
else{//朝外向右(向上)
if(ff==1) ff=n;
else ff--;//!!!!!
}
}
}
}
cout<<k[ff].s<<endl;
return 0;
}
/*
输入:
7 3
0 singer
0 reader(singer右1)
0 mengbier(singer右2)
1 thinker(singer右3)
1 archer(singer左3)
0 writer(singer左2)
1 mogician(singer左1)
0 3
1 1
0 2
输出:
writer
样例详解:
从singer(朝内)开始 向左数3个人(archer)
从archer(朝外)开始 向右数1个人(thinker)
从thinker(朝内)开始 向左数2个人(writer)
*/
/*
输入:
10 10
1 C
0 r
0 P
1 d
1 e
1 m
1 t
1 y
1 u
0 V
1 7
1 1
1 4
0 5
0 3
0 1
1 6
1 2
0 8
0 4
输出:
y
样例详解:
从C(朝外)开始 向右数7个人(d)
从d(朝外)开始 向右数1个人(P)
从P(朝内)开始 向右数4个人(t)
从t(朝外)开始 向左数5个人(r)
从r(超内)开始 向左数3个人(u)
从u(朝外)开始 向左数1个人(V)
从V(朝内)开始 向右数6个人(m)
从m(朝外)开始 向右数2个人(d)
从d(朝外)开始 向左数8个人(r)
从r(朝内)开始 向左数4个人(y)
*/
/*
总结:
玩具朝内(朝向右边(我的右手))
向左数:向上数
向右数:向下数
玩具朝外(朝向左边(我的左手))
向左数:向下数
向右数:向上数
*/