CSES - KILO 2016 3/5 - Results
Submission details
Task:XOR
Sender:QuasirandomTeam
Submission time:2016-09-20 18:30:47 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#2ACCEPTED0.05 sdetails
#3ACCEPTED0.06 sdetails
#4ACCEPTED0.05 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.06 sdetails
#7ACCEPTED0.05 sdetails
#8ACCEPTED0.06 sdetails
#9ACCEPTED0.06 sdetails
#10ACCEPTED0.05 sdetails
#11ACCEPTED0.47 sdetails
#12ACCEPTED0.46 sdetails
#13ACCEPTED0.49 sdetails
#14ACCEPTED0.46 sdetails
#15ACCEPTED0.51 sdetails
#16ACCEPTED0.46 sdetails
#17ACCEPTED0.47 sdetails
#18ACCEPTED0.46 sdetails
#19ACCEPTED0.45 sdetails
#20ACCEPTED0.46 sdetails
#21ACCEPTED0.46 sdetails
#22ACCEPTED0.46 sdetails
#23ACCEPTED0.46 sdetails
#24ACCEPTED0.46 sdetails
#25ACCEPTED0.46 sdetails
#26ACCEPTED0.47 sdetails
#27ACCEPTED0.46 sdetails
#28ACCEPTED0.46 sdetails
#29ACCEPTED0.46 sdetails
#30ACCEPTED0.46 sdetails
#31ACCEPTED0.06 sdetails
#32ACCEPTED0.32 sdetails

Compiler report

input/code.cpp: In function 'void insert(int)':
input/code.cpp:19:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(auto it: qq)if(it!=v)add(it^v);
                          ^

Code

#include <iostream>
#include <set>
#include <vector>
#include <bitset>
using namespace std;
typedef unsigned u32;
vector<u32> a[20];
vector<u32> qq;
bitset<1<<20> b;
bool add(int v){
  //cout<<v<<'\n';
  if(b[v]){b.set(0);return true;}
  b.set(v);
  qq.push_back(v);
  return false;
}
void insert(int v){
  if(add(v))return;
  for(auto it: qq)if(it!=v)add(it^v);
}
void query(int v){
  cout<<(b[v]?"YES\n":"NO\n");
}
int main(){
  int q;
  qq.reserve(1<<20);
  cin>>q;
  while(q--){
    int v;
    int op;
    cin>>op>>v;
    if(op == 1) insert(v);
    else query(v);
  }
  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