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: from bisect import bisect_left, bisect_right
  from collections import deque
   
  N = int(input())
  A = list(map(int, input().split(" ")))
  A.sort()
  A = deque(A)
  ans = 0
  t_max = len(bin(A[-1])) - 2
  for t in range(t_max, 0, -1):	
    	if len(A) < 2: break
      while len(bin(A[-1])) - 2 > t:
          A.pop()
          if len(A) < 2: break
      if len(A) < 2: break
      pow2 = 1 << t
      A_tmp = deque()
      while t == len(bin(A[-1])) - 2:
          r = A.pop()
          idx = bisect_left(A, pow2 - r)
          for _ in range(idx):
              A_tmp.appendleft(A.popleft())
          if len(A) == 0: break
          if A[0] + r == pow2:
              A.popleft()
              ans += 1
          if len(A) < 2: break
      A.extendleft(A_tmp)
                      
  print(ans)
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"}]