#B377. 神奇的异或

神奇的异或

题目描述

小 Z 有一个长度为 nn 的数组 a1,a2,⋯ ,ana_1,a_2,\cdots,a_n,现在小 Z 想知道有多少个满足条件的四元组 (i,j,k,l)(i,j,k,l),满足 1≤i<j<k<l≤n1\le i < j < k < l \le n,同时 ai⊕aj⊕ak⊕al=0a_i \oplus a_j \oplus a_k \oplus a_l =0。

其中 ⊕\oplus 表示异或运算,在 C++ 中用 ^ 运算符表示。

输入格式

第一行输入一个整数 nn 表示数组长度。

接下来一行有 nn 个整数,分别为 a1,a2,⋯ ,ana_1,a_2,\cdots,a_n。

输出格式

输出一行一个整数表示满足条件的四元组个数。

6
1 3 0 0 2 2
5

数据范围

共 1010 组数据,具体分布如下:

测试点 1−21-2 满足,n≤100,ai≤1000n\le 100,a_i\le 1000。

测试点 3−43-4 满足,n≤1000,ai≤1000n\le 1000,a_i \le 1000。

测试点 5−65-6 满足,n≤5000,ai≤1000n\le 5000,a_i\le 1000。

对于 100%100\% 的数据,满足 4≤n≤5000,0≤ai≤1064\le n \le 5000,0\le a_i\le 10^6。

提示

满足条件的四元组分别为 (1,2,3,5),(1,2,3,6),(1,2,4,5),(1,2,4,6),(3,4,5,6)(1,2,3,5),(1,2,3,6),(1,2,4,5),(1,2,4,6),(3,4,5,6)。