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}}b は a と b のビットごとの論理積、a\mathbin{\mathrm{XOR}}b は a と b のビットごとの排他的論理和、a\mathbin{\mathrm{OR}}b は a と b のビットごとの論理和をそれぞれ表します。
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