output_description: Print the maximum possible number of pairs such that the sum of the integers
  written on each pair of balls is a power of 2.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 A_2 ... A_N
attempt: import bisect
  
  def number(num):
    #0bのぶんを引きます
    number_len = len(num)-2
    #numと同じ桁数で各桁が全て1である数を求めます。
    f ＝ 2**number_len - 1
    #排他的論理和をとって1を足したものを返します
    return (num^f)+1
  
  n=int(input())
  line=list(map(int,input().split))
  
  count=0
  
  while len(line)>0:
    #最後の数を取ってくる(最後尾なのでO(1)で済む)
    k=line.pop()
    #整数でないならその数は存在しないと同義なので処理を行わない
    if int(k) != k:
      continue
    x=number(k)
    #もしlineの最大値よりxが大きければ条件を満たすxは存在しないので処理を行わない
    if x>line[-1]:
      continue
    #その数が存在するならば、その数をlistから消去して、カウントする
    if line[bisect.bisect_left(line,x)]==x:
      #0.5を足すことでremoveの代わりとする
      line[bisect.bisect_left(line,x)] += 0.5
      count+=1
  
  print(count)
problem_description: Statement
  
  Takahashi has N balls with positive integers written on them. The integer
  written on the i-th ball is A_i. He would like to form some number of pairs
  such that the sum of the integers written on each pair of balls is a power of
  2. Note that a ball cannot belong to multiple pairs. Find the maximum possible
  number of pairs that can be formed.
  
  Here, a positive integer is said to be a power of 2 when it can be written as
  2^t using some non-negative integer t.
samples: [{"input": "3\n    1 2 3", "output": "1\n    \n\nWe can form one pair whose sum of the written numbers is 4 by pairing the\nfirst and third balls. Note that we cannot pair the second ball with itself.\n\n* * *"}, {"input": "5\n    3 11 14 5 13", "output": "2"}]