atcoder#ARC100C. [ARC100E] Or Plus Max

[ARC100E] Or Plus Max

配点 : 700700

問題文

長さ 2N2^N の整数列 A0,A1,...,A2N1A_0, A_1, ..., A_{2^N-1} があります。(添字が 00 から始まることに注意)

1K2N11 \leq K \leq 2^N-1 を満たすすべての整数 KK について、次の問題を解いてください。

  • i,ji,j を整数とする。0i<j2N10 \leq i < j \leq 2^N-1, (i(i oror j)Kj) \leq K のとき、Ai+AjA_i + A_j の最大値を求めよ。 ただしここで oror はビットごとの論理和を表す。

制約

  • 1N181 \leq N \leq 18
  • 1Ai1091 \leq A_i \leq 10^9
  • 入力はすべて整数である。

入力

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

NN

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

出力

2N12^N-1 行出力せよ。 ii 行目には、K=iK=i のときの上記の問題の答えを出力せよ。

2
1 2 3 1
3
4
5

K=1K=1 のとき、i,ji,j としてあり得る組合せは (i,j)=(0,1)(i,j)=(0,1) のみなので、答えは A0+A1=1+2=3A_0+A_1=1+2=3 となります。

K=2K=2 のとき、i,ji,j としてあり得る組合せは (i,j)=(0,1),(0,2)(i,j)=(0,1),(0,2) です。 (i,j)=(0,2)(i,j)=(0,2) のとき、Ai+Aj=1+3=4A_i+A_j=1+3=4 となり、これが最大なので、答えは 44 です。

K=3K=3 のとき、i,ji,j としてあり得る組合せは (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) です。 (i,j)=(1,2)(i,j)=(1,2) のとき、Ai+Aj=2+3=5A_i+A_j=2+3=5 となり、これが最大なので、答えは 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