#P1793. 最大价值

最大价值

题目描述

给出一个长度为 nn 的数列 aa,你需要选出一个子序列,使其价值最大,输出最大的价值。

对于一个长度为 kk 的子序列,若在这个子序列中有不少于 max(1,k2)\max(1,k-2) 个数的二进制位 ii 上是 11,则其价值增加 2i2^i

输入格式

第一行有一个正整数 nn ,表示数列长度。

之后一行 nn 个整数,表示数列 aa

保证 1n5001\le n\le5001ai10181\le a_i\le10^{18}

输出格式

输出最大的价值。

样例 #1

样例输入 #1

3
2 1 3

样例输出 #1

3

样例 #2

样例输入 #2

3
3 1 4

样例输出 #2

7

样例 #3

样例输入 #3

1
1

样例输出 #3

1

样例 #4

样例输入 #4

4
7 7 1 1

样例输出 #4

7

提示

第一个样例, 如果选子序列 {2,3} \{{2, 3}\} ,此时**kk**为2. 2 2 的二进制表示是 10 , 3 3 的是 11. 因为 max(k2,1) \max(k - 2, 1) 等于 1 1 , 这个子序列的价值是 20+21 2^0 + 2^1 , 你也可以选子序列 {3} \{{3\}} or {2,1,3} \{{2, 1, 3\}} .

第二个样例,选子序列 {3,4} \{{3, 4\}}

第三个样例 选{1} \{{1\}}

第一个样例,选 {7,7} \{{7, 7\}}