#include <bits/stdc++.h>
#define SPED \
ios_base::sync_with_stdio(false); \
cin.tie(0); \
cout.tie(0);
#define fi first
#define se second
#define lint long long
#define int lint
const lint INF = 1e15;
using namespace std;
mt19937_64 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
lint rand(lint l, lint r)
{
assert(l <= r);
return l + rng() % (r - l + 1);
}
void makeTest()
{
ofstream outo("DIVSEQ.inp");
int n, q;
n = rand(100, 100);
q = rand(100, 100);
outo << n << " " << q << endl;
for (int i = 1; i <= n; i++)
outo << rand(1, 1000000000) << " ";
outo << endl;
for (int i = 1; i <= q; i++)
{
lint l = rand(1, n );
lint r = rand(l , n);
outo << l << " " << r << endl;
}
}
signed main()
{
srand(time(0));
for (int Test = 1; Test <= 1000; Test++)
{
makeTest();
system("trau.exe");
system("DIVSEQ.exe");
if (system("fc trau.out DIVSEQ.out") != 0)
return cout << "Sai o test " << Test, 0;
else
cout << "Ok " << Test << "\n";
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIFNQRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBjaW4udGllKDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgY291dC50aWUoMCk7CgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgbGludCBsb25nIGxvbmcKI2RlZmluZSBpbnQgbGludAoKY29uc3QgbGludCBJTkYgPSAxZTE1OwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCm10MTk5MzdfNjQgcm5nKGNocm9ubzo6aGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSk7CgpsaW50IHJhbmQobGludCBsLCBsaW50IHIpCnsKICAgIGFzc2VydChsIDw9IHIpOwogICAgcmV0dXJuIGwgKyBybmcoKSAlIChyIC0gbCArIDEpOwp9Cgp2b2lkIG1ha2VUZXN0KCkKewogICAgb2ZzdHJlYW0gb3V0bygiRElWU0VRLmlucCIpOwogICAgaW50IG4sIHE7CiAgICBuID0gcmFuZCgxMDAsIDEwMCk7CiAgICBxID0gcmFuZCgxMDAsIDEwMCk7CgogICAgb3V0byA8PCBuIDw8ICIgIiA8PCBxIDw8IGVuZGw7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgICAgIG91dG8gPDwgcmFuZCgxLCAxMDAwMDAwMDAwKSA8PCAiICI7CgogICAgb3V0byA8PCBlbmRsOwoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IHE7IGkrKykKICAgIHsKICAgICAgICBsaW50IGwgPSByYW5kKDEsIG4gKTsKICAgICAgICBsaW50IHIgPSByYW5kKGwgLCAgIG4pOwoKICAgICAgICBvdXRvIDw8IGwgPDwgIiAiIDw8IHIgPDwgZW5kbDsKICAgIH0KfQoKc2lnbmVkIG1haW4oKQp7CiAgICBzcmFuZCh0aW1lKDApKTsKCiAgICBmb3IgKGludCBUZXN0ID0gMTsgVGVzdCA8PSAxMDAwOyBUZXN0KyspCiAgICB7CiAgICAgICAgbWFrZVRlc3QoKTsKICAgICAgICBzeXN0ZW0oInRyYXUuZXhlIik7CiAgICAgICAgc3lzdGVtKCJESVZTRVEuZXhlIik7CgogICAgICAgIGlmIChzeXN0ZW0oImZjIHRyYXUub3V0IERJVlNFUS5vdXQiKSAhPSAwKQogICAgICAgICAgICByZXR1cm4gY291dCA8PCAiU2FpIG8gdGVzdCAiIDw8IFRlc3QsIDA7CiAgICAgICAgCiAgICAgICAgZWxzZQogICAgICAgICAgICBjb3V0IDw8ICJPayAiIDw8IFRlc3QgPDwgIlxuIjsKICAgIH0KfQo=