社区讨论

如何用lemon评测spj

学术版参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lobc7cj9
此快照首次捕获于
2023/10/29 18:37
2 年前
此快照最后确认于
2023/11/04 00:24
2 年前
查看原帖
RT,今天机房模拟赛里有一道spj。
题目给的checker长这个样子:
CPP
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
const ll L = (ll)1e18;

int main(void) {
//    ifstream input("2.in");
//    ifstream user_output("2.out");
    ifstream input("input");
    ifstream user_output("user_output");
    int q, d, l;
    int m = 1500;
    input >> q >> d >> l;
    for (int i=0; i<q; i++) {
        ll n; input >> n;
        int k = -1; user_output >> k;
        if (k < 0 || k > m) return 1;

        ll pre = -1; user_output >> pre;
        if (pre != 1) return 1;
        for (int i=0; i<k; i++) {
            ll cur = -1; user_output >> cur;
            if (cur < -L || cur > L) return 1;
            if ((min(abs(cur), abs(pre)) > l || cur != pre - d) && cur != 2 * pre && ((pre%3+3)%3 != 1 || cur != (pre-1)/3))
                return 1;
            pre = cur;
        }
        if (pre != n)return 1;
    }
    return 0;
}
然后我选择了“自定义校验器”,评测显示“无效校验器”。请问如何解决这个问题?

回复

2 条回复,欢迎继续交流。

正在加载回复...