RT,今天机房模拟赛里有一道spj。
题目给的checker长这个样子:
#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;
}
然后我选择了“自定义校验器”,评测显示“无效校验器”。请问如何解决这个问题?