#698. 统计数对

统计数对

题目描述

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

输入格式

第一行包含一个整数 nn,第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n

输出格式

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

样例

4
7 3 2 1
2
3
1 1 1
3

数据范围

子任务 分值 数据范围 特殊性质
11 4040 1n1031 \le n \le 10^31ai1091 \le a_i \le 10^9
22 6060 1n1051 \le n \le 10^51ai1091 \le a_i \le 10^9