#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
using ui64 = unsigned long long;
using i128 = __int128;
using ui128 = unsigned __int128;
using f4 = float;
using f8 = double;
using f16 = long double;
template<class T>
bool chmax(T &a, const T &b){
if(a < b){ a = b; return true; }
return false;
}
template<class T>
bool chmin(T &a, const T &b){
if(a > b){ a = b; return true; }
return false;
}
constexpr int m = 998244353, M = 1000000007, T = 100;
inline int test() {
vector<ui64> reg(26, 0);
auto var = [&](char c) -> ui64& { return reg[c - 'A']; };
auto add = [&](ui64& x, ui64 y, ui64 z) { x = y + z; };
auto mul = [&](ui64& x, ui64 y, ui64 z) { x = y * z; };
auto rem = [&](ui64& x, ui64 y) { x = y % m; };
random_device dev;
mt19937 rnd; rnd.seed(dev());
uniform_int_distribution gen(0, M - 1);
reg[0] = gen(rnd), reg[1] = gen(rnd);
ui64 expect = reg[0] * reg[1] % M;
cout << "Expected: " << reg[0] << " * " << reg[1] << " mod " << M << " = " << expect << endl;
int n;
cin >> n;
for (int i = 0; i < n; i++) {
string op;
char x, y;
cin >> op >> x >> y;
if (op == "rem") rem(var(x), var(y));
if (op == "add") {
string z;
cin >> z;
if (z.size() == 1 && isupper(z[0])) add(var(x), var(y), var(z[0]));
else {
ui64 v = strtoull(z.c_str(), nullptr, 0);
add(var(x), var(y), v);
}
}
if (op == "mul") {
string z;
cin >> z;
if (z.size() == 1 && isupper(z[0])) mul(var(x), var(y), var(z[0]));
else {
ui64 v = strtoull(z.c_str(), nullptr, 0);
mul(var(x), var(y), v);
}
}
}
cout << "result = " << reg[2] << endl;
cout << (reg[2] == expect ? "Accepted!" : "Wrong Answer!") << endl;
cout << endl;
return reg[2] == expect;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int n;
cin >> n;
if (n > 100) {
cout << "Too long" << endl;
return 0;
}
int res = 0;
for (int i = 0; i < T; i++) {
cout << i + 1 << "-th test : ";
cin.seekg(0L, ios::beg);
res += test();
}
cout << "Total : " << res << " / " << T << endl;
return 0;
}
这是一个 checker,将你编写的指令(需按照题目给出的格式)输入到 checker,checker 就会进行 100 轮测试,并在最后输出 正确的次数 / 100