atcoder#ARC100C. [ARC100E] Or Plus Max

[ARC100E] Or Plus Max

Score : 700700 points

Problem Statement

There is an integer sequence of length 2N2^N: A0,A1,...,A2N1A_0, A_1, ..., A_{2^N-1}. (Note that the sequence is 00-indexed.)

For every integer KK satisfying 1K2N11 \leq K \leq 2^N-1, solve the following problem:

  • Let ii and jj be integers. Find the maximum value of Ai+AjA_i + A_j where 0i<j2N10 \leq i < j \leq 2^N-1 and (i(i oror j)Kj) \leq K. Here, oror denotes the bitwise OR.

Constraints

  • 1N181 \leq N \leq 18
  • 1Ai1091 \leq A_i \leq 10^9
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

NN

A0A_0 A1A_1 ...... A2N1A_{2^N-1}

Output

Print 2N12^N-1 lines. In the ii-th line, print the answer of the problem above for K=iK=i.

2
1 2 3 1
3
4
5

For K=1K=1, the only possible pair of ii and jj is (i,j)=(0,1)(i,j)=(0,1), so the answer is A0+A1=1+2=3A_0+A_1=1+2=3.

For K=2K=2, the possible pairs of ii and jj are (i,j)=(0,1),(0,2)(i,j)=(0,1),(0,2). When (i,j)=(0,2)(i,j)=(0,2), Ai+Aj=1+3=4A_i+A_j=1+3=4. This is the maximum value, so the answer is 44.

For K=3K=3, the possible pairs of ii and jj are (i,j)=(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)(i,j)=(0,1),(0,2),(0,3),(1,2),(1,3),(2,3) . When (i,j)=(1,2)(i,j)=(1,2), Ai+Aj=2+3=5A_i+A_j=2+3=5. This is the maximum value, so the answer is 55.

3
10 71 84 33 6 47 23 25
81
94
155
155
155
155
155
4
75 26 45 72 81 47 97 97 2 2 25 82 84 17 56 32
101
120
147
156
156
178
194
194
194
194
194
194
194
194
194