编程题
### 问题描述
在奥特曼的世界中,也存在着很多选拔性考试,其中在一门名叫奥特曼数理基础的课程中,异或位运算和加法运算是赛文奥特曼每天都要面对的问题。他发现,这两种运算虽然看起来完全不同,但实际上它们之间存在着一种深度的联系。赛文奥特曼对异或运算和加法运算之间的联系非常好奇,他总觉得二者之间隐隐有某种联系,所以他想让你求解下列关于异或和加法的问题。
给定长度为 $N$ 的序列 $\\{a\\}$,求有多少对 $(i,j)$ 满足 $1 \leq i,j \leq n$,且 $a_i ⊕ a_j=a_i+a_j$,其中 $⊕$ 表示异或操作。
### 输入格式
第一行包含 $1$ 个正整数 $N$。
第二行包含 $N$ 个整数,第 $i$ 个数表示 $a_i$。
### 输出格式
输出共 $1$ 行,包含 $1$ 个整数,表示最终答案。
### 样例输入
```text
3
0 1 3
```
### 样例输出
```text
5
```
### 样例解释
合法解有 $(1,1),(1,2),(2,1),(1,3),(3,1)$。
### 评测数据规模
对于所有测评数据,$1 \leq N \leq 10^6,0 \leq a_i < 2^{20}$。