#include<bits/stdc++.h>usingnamespace std;constint N =1e5+5;bool dir[N];
string name[N];intmain(){int n, m;
cin >> n >> m;for(int i =0; i < n;++i){
cin >> dir[i]>> name[i];}int index =0;for(int i =0; i < m;++i){int a, s;
cin >> a >> s;
s %= n;if(a + dir[index]==1){
index += s;}else{
index -= s;}
index %= n;if(index <0){
index += n;}}
cout << name[index]<<'\n';return0;}
文章目录题目信息解题思路代码实现题目信息题目传送门解题思路移动方向只取决于两个因素:面朝方向和向左还是右走。通过数组模拟,大于n则%=n(转了一圈还是起点),小于0要 += n(至少要走到起点后)。代码实现#include <bits/stdc++.h> using namespace std;const int N = 1e5 + 5;bool dir[N];string name[N]; int main() { int n, m; cin >>