A Xor B Problem
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Komorebi是一个小学生,今天他需要学习位运算里的异或(\bigoplus)。
在每一个二进制为中,如果某一位AB相同(都是0或者都是1),那么结果的这一位是0,否则就是1,例如10\bigoplus 6=12,即(1010)_2\bigoplus (0110)_2=(1100)_2
老师给了同学们一个长度为n的数组,然后要求同学们找到有多少个数对<i,j>,令A=a_iB=a_j,满足A\bigoplus B = 0
请注意,<i,j><j,i>(i\neq j)是两个不同的数对。
你能帮帮他完成作业吗?

输入描述:

第一行一个整数n
第二行n个整数a_1,a_2,\dots,a_n

输出描述:

输出一个整数表示答案。
示例1

输入

复制
5
1 1 2 2 3

输出

复制
9

备注: