#abc283g. [abc283_g]Partial Xor Enumeration

[abc283_g]Partial Xor Enumeration

問題文

長さ NN の非負整数列 A=(A1,A2,ldots,AN)A=(A _ 1,A _ 2,\\ldots,A _ N) が与えられます。

非負整数列 (a1,a2,ldots,an)(a _ 1,a _ 2,\\ldots,a _ n)operatornamexor\\operatorname{xor} を、すべての非負整数 jj について次の条件を満たすような整数 XX と定義します。

  • a1,ldots,ana _ 1,\\ldots,a _ n のうち二進法で表したとき 2j2^j の位が 11 であるものが奇数個であるとき、かつそのときに限り 2j2^j の位が 11 である

非負整数の集合 $\\lbrace s _ 1,s _ 2,\\ldots,s _ k\\rbrace\\ (s _ 1\\lt s _ 2\\lt\\cdots\\lt s _ k)$ を、AA の連続とは限らない(空でもよい)部分列の operatornamexor\\operatorname{xor} として得られる整数の集合とします。

整数 L,RL,R が与えられるので、sL,sL+1,ldots,sRs _ L,s _ {L+1},\\ldots,s _ R をこの順に出力してください。

制約

  • 1leqNleq2times1051\\leq N\\leq2\\times10^5
  • 0leqAilt260(1leqileqN)0\\leq A _ i\\lt2^{60}\\ (1\\leq i\\leq N)
  • 1leqLleqRleqk1\\leq L\\leq R\\leq k
  • RLleq2times105R-L\\leq2\\times10^5
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN LL RR A1A _ 1 A2A _ 2 ldots\\ldots ANA _ N

出力

si(LleqileqR)s _ i\\ (L\\leq i\\leq R)ii の昇順に空白区切りで出力せよ。


入力例 1

4 1 8
2 21 17 21

出力例 1

0 2 4 6 17 19 21 23

AA の連続とは限らない部分列としてありえる列は $(),(2),(17),(21),(2,17),(2,21),(17,21),(21,17),(21,21),(2,17,21),(2,21,17),(2,21,21),(21,17,21),(2,21,17,21)$ の 1414 種類です。 それぞれ、 operatornamexor\\operatorname{xor} は次のようになります。

  • 空列の operatornamexor\\operatorname{xor}00 です。
  • (2)(2)operatornamexor\\operatorname{xor}22 です。
  • (17)(17)operatornamexor\\operatorname{xor}1717 です。
  • (21)(21)operatornamexor\\operatorname{xor}2121 です。
  • (2,17)(2,17)operatornamexor\\operatorname{xor}1919 です。
  • (2,21)(2,21)operatornamexor\\operatorname{xor}2323 です。
  • (17,21)(17,21)operatornamexor\\operatorname{xor}44 です。
  • (21,17)(21,17)operatornamexor\\operatorname{xor}44 です。
  • (21,21)(21,21)operatornamexor\\operatorname{xor}00 です。
  • (2,17,21)(2,17,21)operatornamexor\\operatorname{xor}66 です。
  • (2,21,17)(2,21,17)operatornamexor\\operatorname{xor}66 です。
  • (2,21,21)(2,21,21)operatornamexor\\operatorname{xor}22 です。
  • (21,17,21)(21,17,21)operatornamexor\\operatorname{xor}1717 です。
  • (2,21,17,21)(2,21,17,21)operatornamexor\\operatorname{xor}1919 です。

よって、AA の部分列のビットごとの排他的論理和としてありえる値の集合は lbrace0,2,4,6,17,19,21,23rbrace\\lbrace0,2,4,6,17,19,21,23\\rbrace です。


入力例 2

4 3 7
2 21 17 21

出力例 2

4 6 17 19 21

入力例 3

5 1 1
0 0 0 0 0

出力例 3

0

入力例 4

6 21 21
88 44 82 110 121 80

出力例 4

41

入力例 5

12 26 48
19629557415 14220078328 11340722069 30701452525 22333517481 720413777 11883028647 20926361028 24376768297 720413777 27999065315 13558621130

出力例 5

13558621130 14220078328 14586054825 15518998043 15970974282 16379590008 17091531049 17412316967 17836964726 18263536708 18965057557 19629557415 20282860278 20926361028 21302757781 21908867832 22333517481 22893781403 23595304394 23723463544 24376768297 24885524507 25261923402

入力や出力が 32operatornamebit32\\operatorname{bit} 整数に収まらない場合があることに注意してください。