样例1死循环,求助
#include <bits/stdc++.h>
using namespace std;
bool a[100005];
string s[100000];
int main(){
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; ++i){
cin >> a[i] >> s[i];
}
int z = 1;
for (int i = 1; i <= m; ++i){
bool f;
int r;
cin >> f >> r;
if (a[z] == 1 && f == 0 && z + r <= n) z += r;
else if (a[z] == 1 && f == 0 && z + r > n) z = n - r + z;
else if (a[z] == 0 && f == 1 && z + r <= n) z += r;
else if (a[z] == 0 && f == 1 && z + r <= n) z = n - r + z;
else if (a[z] == 0 && f == 0 && z - r > n) z = n - r + z;
else if (a[z] == 0 && f == 0 && z - r < 1) z -= r;
else if (a[z] == 1 && f == 1 && z - r >= 1) z -= r;
else if (a[z] == 1 && f == 1 && z - r < 1) z = n - r + z;
cout << s[z] << endl;
}
cout << s[z] << endl;
}