#2834. 异或

异或

题目描述

丛雨有一个数列a1,a2,...,an a_1,a_2,...,a_n。有一天,芳乃拿来了一个正整数 X。

丛雨是一个特别喜欢异或(xor)运算的孩子,她也很喜欢芳乃。于是,丛雨就想知道,自己能找到多少对数(i,j)(i,j)能够满足ai a_i xor aj=Xa_j=X。 两个数对(i1,j1)(i1, j1)(i2,j2)(i2, j2)不同,当且仅当i1i2 i1≠i2 或者j1j2 j1≠j2

提示:异或运算在 C++里的算符是^。

输入格式

第一行两个正整数 n,Xn,X,分别表示数列的长度以及芳乃带来的整数。

第二行包含n n 个正整数,表示数列an a_n

输出格式

一行一个整数表示答案。

5 1 
1 4 2 2 5
2

样例解释

因为 4 xor 5=1,所以这两个数对是(2,5)和(5,2)。

数据范围

对于 50%的数据,1n20001≤n≤2000

对于接下来 20%的数据,1ai1000001≤ai≤100000

对于 100%的数据,1n1000000,1ai230,1X2301≤n≤1000000,1≤ai≤2^{30}, 1≤X≤2_{30}