分析:一道模拟题
序号增加时包含两种情况:玩具小人朝内,向右移动;玩具小人朝外,向左移动。其余情况为序号递减。总结出的公式如图所示。
#include<iostream>
using namespace std;
struct people {
int w;
string name;
}p[100005];
int main() {
int n, m, mark = 1;
int a, s;//a=0向左,a=1向右。s表示位移的次数
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> p[i].w >> p[i].name;
}
for (int i = 1; i <= m; i++) {
cin >> a >> s;
if (p[mark].w + a == 1) {
mark = (mark + s) % n;
if (mark == 0) {
mark = n;
}
}
else {
mark = (mark - s + n ) % n;
if (mark == 0) {
mark = n;
}
}
}
cout << p[mark].name ;
return 0;
}