0.数组开100001
1.不需要hulk,开两个数组str,x分别保存就行了。
2.不需要f,s数组。直接开两个变量f,s。(将两个循环合并)
3.不需要if(A&B),改成嵌套if
4.不需要for。直接一次性将下标加上s在判断是否需要加上n(<1)或减去n(>n)就行了。
改完后代码如下:
```c++
#include<bits/stdc++.h>
using namespace std;
int x[100001];
string str[100001];
int main()
{
int n, m, ans = 1;
cin >> n >> m;
for(int i = 1;i <= n;i++)
{
cin >> x[i] >> str[i];
}
for(int i = 1;i <= m;i++)
{
int a , s;
cin >> a >> s;
if( x[ans] == 0)
{
if( a == 1)
{
ans += s;
if( ans > n) ans -= n;
}
else
{
ans -= s;
if( ans < 1) ans += n;
}
}
else
{
if( a == 0)
{
ans += s;
if( ans > n) ans -= n;
}
else
{
ans -= s;
if( ans < 1) ans += n;
}
}
}
cout << str[ans] << endl;
return 0;
}
```
by vanishingloser @ 2023-01-19 12:45:52
@[yangjinyi_ceshyong](/user/725725)
谢谢大佬
没看到题目中的s < n,所以用的for。
谢谢大佬!!!
by 0x0001cxr @ 2023-01-21 10:29:14