5015 - [COCI 2017-2018 #3] Dojave

给出一个 0 ~ (2^m-1) 的排列,第 i 个数为 a_i

求有多少个连续非空子序列满足,存在 i,j(1\le i,j\le 2^m,i≠j),使得交换 a_i,a_j 后(不能不交换),该子序列的异或和为 2^m-1

输入

第一行一个数 m

第二行 2^m 个数,第 i 个数为 a_i

输出

输出为一个数,即满足条件的连续非空子序列的个数。

样例

输入

2
0 1 2 3

输出

9

输入

3
3 7 0 4 6 1 5 2

输出

33

输入

4
13 0 15 12 4 8 7 3
11 14 6 10 1 5 9 2

输出

133

提示

【样例一解释】

[1,1]: 交换 a_1,a_4,满足条件。

[2,2]: 交换 a_2,a_4,满足条件。

[3,3]: 交换 a_3,a_4,满足条件。

[4,4]: 交换 a_1,a_2,满足条件。

[1,2]: 交换 a_1,a_3,满足条件。

[2,3]: 交换 a_1,a_4,满足条件。

[3,4]: 交换 a_1,a_3,满足条件。

[1,3]: 交换 a_1,a_2,满足条件。

[2,4]: 交换 a_1,a_4,满足条件。

[1,4]: 交换无法改变区间异或和的值(即 0),不满足条件。

合法序列个数为 9

【数据范围】

对于 100\% 的数据,1\le m \le 20

时间限制 4 秒
内存限制 256 MB
讨论 统计
上一题 下一题