Task: | XOR |
Sender: | :] |
Submission time: | 2016-09-20 17:08:22 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.06 s | details |
#2 | ACCEPTED | 0.05 s | details |
#3 | ACCEPTED | 0.06 s | details |
#4 | ACCEPTED | 0.06 s | details |
#5 | ACCEPTED | 0.05 s | details |
#6 | ACCEPTED | 0.06 s | details |
#7 | ACCEPTED | 0.05 s | details |
#8 | ACCEPTED | 0.05 s | details |
#9 | ACCEPTED | 0.05 s | details |
#10 | ACCEPTED | 0.05 s | details |
#11 | ACCEPTED | 0.52 s | details |
#12 | ACCEPTED | 0.52 s | details |
#13 | ACCEPTED | 0.52 s | details |
#14 | ACCEPTED | 0.53 s | details |
#15 | ACCEPTED | 0.52 s | details |
#16 | ACCEPTED | 0.53 s | details |
#17 | ACCEPTED | 0.52 s | details |
#18 | ACCEPTED | 0.52 s | details |
#19 | ACCEPTED | 0.51 s | details |
#20 | ACCEPTED | 0.52 s | details |
#21 | ACCEPTED | 0.50 s | details |
#22 | ACCEPTED | 0.52 s | details |
#23 | ACCEPTED | 0.51 s | details |
#24 | ACCEPTED | 0.49 s | details |
#25 | ACCEPTED | 0.52 s | details |
#26 | ACCEPTED | 0.52 s | details |
#27 | ACCEPTED | 0.52 s | details |
#28 | ACCEPTED | 0.52 s | details |
#29 | ACCEPTED | 0.52 s | details |
#30 | ACCEPTED | 0.53 s | details |
#31 | ACCEPTED | 0.06 s | details |
#32 | ACCEPTED | 0.06 s | details |
Compiler report
input/code.cpp: In function 'void rev(std::vector<long unsigned int>&)': input/code.cpp:6:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i < b.size(); ++i) { ^
Code
#include<bits/stdc++.h> using namespace std; void rev(vector<uint64_t> &b) { for (int i = 0; i < b.size(); ++i) { uint64_t tmp = 0; uint64_t k = (uint64_t)1<<(uint64_t)62; for (uint64_t j = 1; j <= (uint64_t)1<<(uint64_t)62; j*=2) { if (b[i]&j) { tmp += k; } k/=2; } b[i] = tmp; } } int main() { uint64_t q; cin >> q; vector<uint64_t> basis; bool has0 = false; for (uint64_t i = 0; i < q; ++i) { uint64_t t, x; cin >> t >> x; /*cout << "Basis: " << endl; for (auto b: basis) cout << b << ' '; cout << endl;*/ if (t == 1) { for (uint64_t j = 0; j < basis.size(); ++j) { if (x & (basis[j] & (-basis[j]))) { x^=basis[j]; } } if (x != 0) { basis.push_back(x); //cout << "Adding: " << x << endl; rev(basis); sort(basis.rbegin(), basis.rend()); rev(basis); } else { has0 = true; } } else { if (x == 0) { if (has0) { cout << "YES\n"; } else { cout << "NO\n"; } } else { for (uint64_t j = 0; j < basis.size(); ++j) { if (x & (basis[j] & (-basis[j]))) { x^=basis[j]; } } if (x == 0) { cout << "YES\n"; } else { cout << "NO\n"; } } } } return 0; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
59 2 549796 1 797427 2 8267 2 94241 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 2
Verdict: ACCEPTED
input |
---|
60 2 189273 2 88019 2 110069 1 611607 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 3
Verdict: ACCEPTED
input |
---|
86 1 811855 1 110105 2 569085 1 805175 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 4
Verdict: ACCEPTED
input |
---|
79 2 204680 2 479640 2 21734 1 822295 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 5
Verdict: ACCEPTED
input |
---|
54 2 393529 2 508737 2 279234 1 610723 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 6
Verdict: ACCEPTED
input |
---|
76 1 40087 1 746813 1 120910 2 1048513 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 7
Verdict: ACCEPTED
input |
---|
73 1 96148 1 881120 1 414495 1 814692 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 8
Verdict: ACCEPTED
input |
---|
93 2 458578 1 907441 2 406032 2 72125 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 9
Verdict: ACCEPTED
input |
---|
66 1 256689 1 656847 1 204470 1 706678 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 10
Verdict: ACCEPTED
input |
---|
90 1 806402 2 212552 2 588349 2 437562 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 11
Verdict: ACCEPTED
input |
---|
500000 1 87911 1 254464 2 936765 2 177725 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 12
Verdict: ACCEPTED
input |
---|
500000 2 580798 2 711232 1 517084 1 706145 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 13
Verdict: ACCEPTED
input |
---|
500000 1 890696 1 736663 1 309693 1 877748 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 14
Verdict: ACCEPTED
input |
---|
500000 2 422535 2 915569 1 799087 1 640406 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 15
Verdict: ACCEPTED
input |
---|
500000 1 173418 2 945329 1 54964 2 617017 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 16
Verdict: ACCEPTED
input |
---|
500000 1 193460 2 476498 2 117697 1 176455 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 17
Verdict: ACCEPTED
input |
---|
500000 2 88645 2 524394 1 545883 2 906204 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 18
Verdict: ACCEPTED
input |
---|
500000 1 349059 2 820258 1 666916 1 821504 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 19
Verdict: ACCEPTED
input |
---|
500000 1 55427 1 389186 2 340527 1 451535 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 20
Verdict: ACCEPTED
input |
---|
500000 2 186 2 572852 2 279886 1 559531 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 21
Verdict: ACCEPTED
input |
---|
500000 1 759956 2 946637 2 781536 1 211151 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 22
Verdict: ACCEPTED
input |
---|
500000 2 898884 1 461135 1 129061 2 1011354 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 23
Verdict: ACCEPTED
input |
---|
500000 1 124677 2 379713 1 1034177 1 152116 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 24
Verdict: ACCEPTED
input |
---|
500000 2 280923 1 888416 1 301451 2 877860 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 25
Verdict: ACCEPTED
input |
---|
500000 2 239639 1 863577 2 825271 2 1030489 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 26
Verdict: ACCEPTED
input |
---|
500000 2 842792 1 280374 2 528173 2 902772 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 27
Verdict: ACCEPTED
input |
---|
500000 1 769700 2 786489 2 954187 2 213653 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 28
Verdict: ACCEPTED
input |
---|
500000 2 45666 2 742846 1 870697 2 824087 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 29
Verdict: ACCEPTED
input |
---|
500000 2 1010353 1 298819 1 946132 2 1017161 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 30
Verdict: ACCEPTED
input |
---|
500000 2 195272 1 971250 1 118355 2 361142 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 31
Verdict: ACCEPTED
input |
---|
4 2 0 1 5 1 5 2 0 |
correct output |
---|
NO YES |
user output |
---|
NO YES |
Test 32
Verdict: ACCEPTED
input |
---|
3 2 0 1 0 2 0 |
correct output |
---|
NO YES |
user output |
---|
NO YES |