#3173. 统计数对(match)

统计数对(match)

题目描述

陶陶是一个计算机爱好者,对二进制数有着特别的喜 好,遇到各种各样的数据,他总能找到跟2的整数次 幂的关系。现在,他获得了一个长度为n的数列 a1,a2,...,ana_1, a_2,..., a_n,他发现其中有些元素的和恰好是2 的整数次幂。对于给定的a1,a2,...,ana_1, a_2,..., a_n,你的任务 是统计有多少个数对(i,j)(i, j) 满足ai+aj=2xa_i + a_j = 2^x,其 中xNx \in N^*, i<ji<j,这里NN^*表示正整数集合。

输入格式

第一行包含一个整数n,第二行包含n个整数 a1,a2,...,ana_1, a_2,..., a_n.

输出格式

仅有一个正整数,表示满足ai+aja_i+a_j是2的整数次幂的数对(i,j)(i,j)的个数。

输入输出样例 #1

输入 #1

4
7 3 2 1

输出 #1

2

输入输出样例 #2

输入 #2

3
1 1 1

输出 #2

3

说明/提示

对于40%的数据,1n1031≤ n ≤10^3, 对于每一个正整数i,1in,i,1≤i≤n, 都有1ai1091≤a_i≤10^9

对于另外60%的数据,1n1051≤ n ≤10^5, ,对于每一个正整数i,1in,i,1≤i≤n, 都有1ai1091≤a_i≤10^9