```
#include<bits/stdc++.h>
using namespace std;
long long sum1[1000001],sum2[1000001];
long long sum3=1;
struct adj
{
string x;
long long y;
}a[2000001];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<n;i++){
cin>>a[i].y>>a[i].x;
a[i+n].y=a[i].y;
a[i+n].x=a[i].x;
}
for(int i=1;i<=m;i++){
cin>>sum1[i]>>sum2[i];
}
for (int i=1;i<=m;i++) {
if(a[sum3].y+sum1[i]==1){
sum3=(sum3+sum2[i])%n;
}else{
sum3=(sum3-sum2[i]+n)%n;
}
}
cout<<a[sum3].x<<endl;
return 0;
}
```
by Lhy2021 @ 2023-01-07 11:22:52
你第一个for循环时从i=1开始的。而你后面是通过mod n来实现“转圈”的。所以建议你i=0开始,这样mod n 才能实现“转圈”的效果。
by Nefelibata_ @ 2023-01-09 18:38:13