atcoder#ARC100C. [ARC100E] Or Plus Max

[ARC100E] Or Plus Max

题目描述

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

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

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

输入格式

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

N N A0 A_0 A1 A_1 ... ... A2N1 A_{2^N-1}

输出格式

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

题目大意

给你一个长度为 2n2^n 的序列 aa,每个1K2n11\le K\le 2^n-1,找出最大的 ai+aja_i+a_jiorjKi \mathbin{\mathrm{or}} j \le K0i<j<2n0 \le i < j < 2^n)并输出。
or\mathbin{\mathrm{or}} 表示按位或运算。

2
1 2 3 1
3
4
5
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

提示

制約

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

Sample Explanation 1

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