线上ac代码
#include <iostream>
#include <cstdio>
using namespace std;
struct people
{
long long int id;
string name;
} p[1000001];
int main()
{
int m, n, f = 0, l, direction;
cin >> n >> m;
for (int i = 0; i < n; i++)
{
cin >> p[i].id >> p[i].name;
}
for (int i = 0; i < m; i++)
{
cin >> direction >> l;
if (p[f].id == 0 && direction == 1)
f = (f + n + l) % n;
else if (p[f].id == 1 && direction == 1)
f = (f + n - l) % n;
else if (p[f].id == 0 && direction == 0)
f = (f + n - l) % n;
else if (p[f].id == 1 && direction == 0)
f = (f + n + l) % n;
}
cout << p[f].name;
}
上面的ac代码是修改过几次的 下面上一开始写的代码
#include <iostream>
#include <cstdio>
using namespace std;
struct people
{
long long int id;
string name;
} p[1000001];
int main()
{
int m, n, f = 1, l, direction;
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
cin >> p[i].id >> p[i].name;
}
for (int i = 0; i < m; i++)
{
cin >> direction >> l;
if (p[f].id == 0 && direction == 1)
f = (f + n + l) % n;
else if (p[f].id == 1 && direction == 1)
f = (f + n - l) % n;
else if (p[f].id == 0 && direction == 0)
f = (f + n - l) % n;
else if (p[f].id == 1 && direction == 0)
f = (f + n + l) % n;
}
cout << p[f].name;
}
区别就是输入朝向和名字还有设定的标志位不同 为什么从0开始就可以ac改成1就只有90分 (第4和第8不过)