Sum the Fibonacci

题意翻译

给定长度为 $n$ 的数组 $s$。定义五元组 $(a,b,c,d,e)$ 是**好的**当且仅当: 1. $1\le a,b,c,d,e\le n$; 2. $\exists i\in \mathbb{Z}_+$,使得 $(s_a\operatorname{or}s_b)\operatorname{and}s_c\operatorname{and}(s_d \operatorname{xor} s_e)=2^i$; 3. $s_a\operatorname{and}s_b=0$。 对于所有**好的**五元组 $(a,b,c,d,e)$,求出 $f(s_a\operatorname{or}s_b)\times f(s_c)\times f(s_d \operatorname{xor} s_e)$ 的和。对 $(10^9+7)$ 取模。 其中 $f$ 为 Fibonacci 数列,满足 $f_0=0,f_1=1,f_i=f_{i-1}+f_{i-2}$。$\mathrm{and},\mathrm{or},\mathrm{xor}$ 分别代表按位与,按位或,按位异或运算。 $1\le n \le 10^6$,$0\le s_i \lt 2^{17}$。 Statement fixed by Starrykiller

题目描述

You are given an array $ s $ of $ n $ non-negative integers. A 5-tuple of integers $ (a,b,c,d,e) $ is said to be valid if it satisfies the following conditions: - $ 1<=a,b,c,d,e<=n $ - $ (s_{a} $ | $ s_{b}) $ & $ s_{c} $ & $ (s_{d} $ ^ $ s_{e})=2^{i} $ for some integer $ i $ - $ s_{a} $ & $ s_{b}=0 $ Here, '|' is the bitwise OR, '&' is the bitwise AND and '^' is the bitwise XOR operation. Find the sum of $ f(s_{a} $ | $ s_{b})*f(s_{c})*f(s_{d} $ ^ $ s_{e}) $ over all valid 5-tuples $ (a,b,c,d,e) $ , where $ f(i) $ is the $ i $ -th Fibonnaci number ( $ f(0)=0,f(1)=1,f(i)=f(i-1)+f(i-2) $ ). Since answer can be is huge output it modulo $ 10^{9}+7 $ .

输入输出格式

输入格式


The first line of input contains an integer $ n $ ( $ 1<=n<=10^{6} $ ). The second line of input contains $ n $ integers $ s_{i} $ ( $ 0<=s_{i}<2^{17} $ ).

输出格式


Output the sum as described above, modulo $ 10^{9}+7 $

输入输出样例

输入样例 #1

2
1 2

输出样例 #1

32

输入样例 #2

3
7 4 1

输出样例 #2

3520

输入样例 #3

10
1 3 0 7 3 7 6 5 7 5

输出样例 #3

1235424

输入样例 #4

10
50 9 11 44 39 40 5 39 23 7

输出样例 #4

113860062