#include <bits/stdc++.h>
using namespace std;
using namespace std::chrono;
// Tên chương trình
const string NAME = "tem";
const string MAIN = "main.exe";
const string TEST = "test.exe";
// Số test kiểm tra
const int NTEST = 10;
mt19937_64 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
long long Rand(long long l, long long h) {
return uniform_int_distribution<long long>(l, h)(rng);
}
typedef long long ll;
int main()
{
srand(time(NULL));
for (int iTest = 1; iTest <= 20000; iTest++)
{
ofstream inp((NAME + ".inp").c_str());
// Write your input here
inp.close();
// Nếu dùng Linux thì "./" + Tên chương trình
//
system((MAIN).c_str());
system((TEST).c_str());
//system((TEST).c_str());
// Nếu dùng linux thì thay fc bằng diff
if (system(("fc " + NAME + ".out " + NAME + ".ans").c_str()) != 0)
{
cout << "Test " << iTest << ": WRONG!\n";
return 0;
}
cout << "Test " << iTest << ": " << "ACCEPTED" << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIG5hbWVzcGFjZSBzdGQ6OmNocm9ubzsKLy8gVMOqbiBjaMawxqFuZyB0csOsbmgKY29uc3Qgc3RyaW5nIE5BTUUgPSAidGVtIjsKY29uc3Qgc3RyaW5nIE1BSU4gPSAibWFpbi5leGUiOwpjb25zdCBzdHJpbmcgVEVTVCA9ICJ0ZXN0LmV4ZSI7Ci8vIFPhu5EgdGVzdCBraeG7g20gdHJhCmNvbnN0IGludCBOVEVTVCA9IDEwOwoKbXQxOTkzN182NCBybmcoY2hyb25vOjpoaWdoX3Jlc29sdXRpb25fY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKCmxvbmcgbG9uZyBSYW5kKGxvbmcgbG9uZyBsLCBsb25nIGxvbmcgaCkgewoJcmV0dXJuIHVuaWZvcm1faW50X2Rpc3RyaWJ1dGlvbjxsb25nIGxvbmc+KGwsIGgpKHJuZyk7Cn0KdHlwZWRlZiBsb25nIGxvbmcgbGw7CmludCBtYWluKCkKewogICAgc3JhbmQodGltZShOVUxMKSk7CiAgICBmb3IgKGludCBpVGVzdCA9IDE7IGlUZXN0IDw9IDIwMDAwOyBpVGVzdCsrKQogICAgewogICAgICAgIG9mc3RyZWFtIGlucCgoTkFNRSAgKyAiLmlucCIpLmNfc3RyKCkpOwkKCQkKCQkvLyBXcml0ZSB5b3VyIGlucHV0IGhlcmUKCgkJaW5wLmNsb3NlKCk7CiAgICAgICAgLy8gTuG6v3UgZMO5bmcgTGludXggdGjDrCAiLi8iICsgVMOqbiBjaMawxqFuZyB0csOsbmgKCQkvLwogICAgICAgIHN5c3RlbSgoTUFJTikuY19zdHIoKSk7CgkJc3lzdGVtKChURVNUKS5jX3N0cigpKTsKICAgICAgICAvL3N5c3RlbSgoVEVTVCkuY19zdHIoKSk7CiAgICAgICAgLy8gTuG6v3UgZMO5bmcgbGludXggdGjDrCB0aGF5IGZjIGLhurFuZyBkaWZmCiAgICAgICAgaWYgKHN5c3RlbSgoImZjICIgKyBOQU1FICsgIi5vdXQgIiArIE5BTUUgKyAiLmFucyIpLmNfc3RyKCkpICE9IDApCiAgICAgICAgewogICAgICAgICAgICBjb3V0IDw8ICJUZXN0ICIgPDwgaVRlc3QgPDwgIjogV1JPTkchXG4iOwogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CgogICAgICAgIGNvdXQgPDwgIlRlc3QgIiA8PCBpVGVzdCA8PCAiOiAiIDw8ICJBQ0NFUFRFRCIgPDwgIlxuIjsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==