萌新复习基础发现自己不会黄题模拟了 WA#8
查看原帖
萌新复习基础发现自己不会黄题模拟了 WA#8
320697
AMIRIOX無暝楼主2021/5/2 19:58

这是我第二次用另一种方法问这道题

rt 复习提单 写了一遍这题 比上次写的简洁了很多 但是WA了#8 数据有800多行 一步步调怕是要出人命的,求助大佬/kel

最后输出cur是调试用 错的那个点cur=0(我是1开始下标 按理不应该出现0)

#include <iostream>
#include <cstdio>
std::string taskplace[100010];
int a[100010];
void turn_add(int &cur, int n, int ny) {
    cur = (cur + ny) % n;
}
void turn_minu(int &cur, int n, int  ny) {
    cur = (((cur - ny) > 0) ? cur - ny : ((cur + (n - ny) % n)));
}
int main() {
    int n, m, cur = 1;
    scanf("%d %d", &n, &m);
    for(int i = 1; i <= n; i++) {
        scanf("%d", &a[i]);
        std::cin >> taskplace[i];
    }
    for(int i = 1; i <= m; i++) {
        int lr, ny;
        scanf("%d %d", &lr, &ny);
        if(lr == 0 && a[cur] == 0) {
            turn_minu(cur, n, ny);
        } else if(lr == 0 && a[cur] == 1) {
            turn_add(cur, n, ny);
        } else if(lr == 1 && a[cur] == 0) {
            turn_add(cur, n, ny);
        } else if(lr == 1 && a[cur] == 1) {
            turn_minu(cur, n, ny);
        }
    }
    printf("%d %s\n", cur, taskplace[cur].c_str());
    return 0;
}
2021/5/2 19:58
加载中...