#P1694. 四元组

四元组

题目描述

薯条哥有一个长度为nn的数组aa,他想知道有多少对{ai,aj,ak,al},(i<j<k<l)\{a_i,a_j,a_k,a_l\},(i \lt j \lt k \lt l)满足ai+aj=akala_i +a_j =a_k⊕a_l

其中,\oplus表示按二进制位执行异或运算,10=1,11=01\oplus 0=1,1\oplus 1=0

答案可能太大,请对109+710^9+7取模后再输出。

输出描述

第一行输入一个正整数n(1n104)n(1\le n\le 10^4)

第二行输入nn个正整数ai(1ai100)a_i(1\le a_i\le 100)

输出描述

输出一个整数,表示对109+710^9+7取模后的答案。

样例

输入

5
4 5 5 1 8

输出

2

样例解释

满足要求的四元组有(1,2,4,5)(1,2,4,5)(1,3,4,5)(1,3,4,5),即:4+5=18=94+5=1⊕8=9