RT,可以说非常之惨烈...
#include <bits/stdc++.h>
using namespace std;
struct person {
int left;
int right;
string name;
int turn;
} a[1145];
int n, m;
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> a[i].turn >> a[i].name;
// cout << a[i].name << endl;
if (a[i].turn == 1) {
a[i].left = i + 1;
a[i].right = i - 1;
if (i == 0) {
a[i].right = n - 1;
}
if (i == n - 1) {
a[i].left = 0;
}
} else if (a[i].turn == 0) {
a[i].left = i - 1;
a[i].right = i + 1;
if (i == n - 1) {
a[i].right = 0;
}
if (i == 0) {
a[i].left = n - 1;
}
}
}
int turn, num;
string temp;
int cur = 0;
for (int i = 0; i < m; i++) {
cin >> turn >> num;
// printf("turn:%d,num:%d,cur:%d\n", turn, num, cur);
if (turn == 0) {
if (a[cur].turn == 1) { //朝外
cur = a[cur].left;
cur += num;
temp = a[cur].name;
} else {
cur = a[cur].left;
cur += n - num;
temp = a[cur].name;
}
// cout << temp << endl;
} else if (turn == 1) {
if (a[cur].turn == 0) { //朝内
cur = a[cur].right;
cur += num;
temp = a[cur].name;
} else {
cur = a[cur].right;
cur += n - num;
temp = a[cur].name;
}
// cout << temp << endl;
}
}
cout << temp;
return 0;
}