传送门:https://www.luogu.org/problemnew/show/P1563
模拟即可(这句话同样不是bb机说的
#include<cstdio> using namespace std; int n,m,x,y,last; struct node { int a; char s[10]; }t[100000]; int main() { scanf("%d%d",&n,&m); for(int i = 0;i < n;i++) { scanf("%d%s",&t[i].a,t[i].s); } for(int i = 1;i <= m;i++) { scanf("%d%d",&x,&y); if(x == 0)//左数 { if(t[last].a == 0)//小人朝里 { while(y != 0) { if(last - y >= 0) { last -= y; y = 0; } else { y -= last+1; last = n-1; } } } else//小人朝外 { last += y; last %= n; } } else//右数 { if(t[last].a == 0) { last += y; last %= n; } else { while(y != 0) { if(last - y >= 0) { last -= y; y = 0; } else { y -= last+1; last = n-1; } } } } } printf("%s",t[last].s); return 0; }