E - And Xor Or Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 400

問題文

長さ N の整数列 A=A_1,A_2,\dots,A_N が与えられます。また、整数組 (i, j)\ (1 \leq i < j \leq N) に対して「スコア」を以下のように定義します。

  • スコア:A_i + A_j - ((A_i\mathbin{\mathrm{AND}}A_j)\mathbin{\mathrm{XOR}}(A_i\mathbin{\mathrm{OR}}A_j))

ここで a\mathbin{\mathrm{AND}}bab のビットごとの論理積a\mathbin{\mathrm{XOR}}bab のビットごとの排他的論理和a\mathbin{\mathrm{OR}}bab のビットごとの論理和をそれぞれ表します。

1 \leq i < j \leq N を満たす全ての整数組 (i, j) についてスコアを求め、その最大値を出力してください。

制約

  • 2 \leq N \leq 3\times10^5
  • 0 \leq A_i < 2^{31}\ (1 \leq i \leq N)
  • 入力は全て整数

入力

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

N
A_1 A_2 \dots A_N

出力

スコアの最大値を 1 行に出力せよ。


入力例 1

3
4 7 3

出力例 1

8

(1,2) のスコアは A_1+A_2-((A_1\mathbin{\mathrm{AND}}A_2)\mathbin{\mathrm{XOR}}(A_1\mathbin{\mathrm{OR}}A_2))=4+7-(4\mathbin{\mathrm{XOR}}7)=4+7-3=8 で、これが最大です。


入力例 2

5
8 17 20 31 3

出力例 2

40

原案: Ebishu0309