求助 0和1有什么区别
查看原帖
求助 0和1有什么区别
767048
Rookie_h楼主2023/2/2 11:56

线上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不过)

2023/2/2 11:56
加载中...