文章目錄
- 題目資訊
- 解題思路
- 代碼實作
題目資訊
題目傳送門
解題思路
- 移動方向隻取決于兩個因素:面朝方向和向左還是右走。
- 通過數組模拟,大于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 >> 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';
return 0;
}