5001. 异或和之和

给定一个数组 $A_i$,分别求其每个子段的异或和,并求出它们的和。

或者说,对于每组满足 $1 ≤ L ≤ R ≤ n$ 的 $L, R$ ,求出数组中第 $L$ 至第 $R$ 个元素的异或和。

然后输出每组 $L, R$ 得到的结果加起来的值。

输入格式

输入的第一行包含一个整数 $n$。

第二行包含 $n$ 个整数 $A_i$,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

数据范围

对于 $30\%$ 的评测用例,$n ≤ 300$;
对于 $60\%$ 的评测用例,$n ≤ 5000$;
对于所有评测用例,$1 ≤ n ≤ 10^5$,$0 ≤ A_i ≤ 2^{20}$。

输入样例:

5
1 2 3 4 5

输出样例:

39