题目描述
给定长度为 2n 的数组 ai (0≤i<2n),你可以进行任意次循环移位。
求 ∑i=02n−1ai⊕i, ∑i=02n−1ai&i,∑i=02n−1ai∣i 的最大值。其中 ⊕,&,∣ 分别代表按位异或,按位与,按位或。
对于一个长度为 m 的数组 xi (0≤i<m),其进行循环移位的结果 xi′ 为:
$$x'_i = \left\{
\begin{array}{ll}
x_{i - 1} & i \neq 0 \\
x_{m - 1} & i = 0
\end{array}\right.$$
输入格式
输入第一行包含一个整数 n (1≤n≤20),含义如题意所述。
接下来一行包含 2n 个整数 ai (0≤ai<2n),为给定的数组。
输出格式
输出一行三个整数,由空格隔开,为 ∑i=02n−1ai⊕i,∑i=02n−1ai&i,∑i=02n−1ai∣i 的最大值。
2
1 3 2 2
8 5 11
4
1 1 4 5 1 4 1 9 1 9 8 1 0 0 0 0
149 41 157