atcoder#AGC029B. [AGC029B] Powers of two

[AGC029B] Powers of two

分数 : 600600

问题陈述

Takahashi 有 NN 个球,球上写有正整数。第 ii 个球上写的整数是 AiA_i。 他想要形成一些对,使得每对球上写的整数之和是 22 的幂。 注意,一个球不能属于多个对。 找出可以形成的最大对数。

这里,当一个正整数可以表示为 2t2^t(其中 tt 是某个非负整数)时,称其为 22 的幂。

约束条件

  • 1N2×1051 \leq N \leq 2\times 10^5
  • 1Ai1091 \leq A_i \leq 10^9
  • AiA_i 是一个整数。

输入

输入通过标准输入以以下格式给出:

NN

A1A_1 A2A_2 ...... ANA_N

输出

打印可以形成的最大对数,使得每对球上写的整数之和是 22 的幂。

3
1 2 3
1

我们可以形成一个对,写的数字之和是 44,通过将第一个和第三个球配对。 注意,我们不能将第二个球与其自身配对。

5
3 11 14 5 13
2