output_description: Let m be the number of operations in your solution. In the first line, print
  m. In the i-th of the subsequent m lines, print the numbers x and y chosen in
  the i-th operation, with a space in between. The output will be considered
  correct if m is between 0 and 2N (inclusive) and a satisfies the condition
  after the m operations.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      a_1 a_2 ... a_{N}
attempt: from sys import stdout
  
  printn = lambda x: stdout.write(str(x))
  inn = lambda: int(input())
  inl = lambda: list(map(int, input().split()))
  inm = lambda: map(int, input().split())
  ins = lambda: input().strip()
  DBG = True  # and False
  BIG = 999999999
  R = 10**9 + 7
  
  
  def ddprint(x):
      if DBG:
          print(x)
  
  
  n = inn()
  a = inl()
  mx = max([abs(x) for x in a])
  p = [i for i in range(n) if abs(a[i]) == mx][0]
  seq = []
  if a[p] > 0:
      for i in range(1, n):
          while a[i - 1] > a[i]:
              a[i] += a[p]
              seq.append((p, i))
          if a[i] > a[p]:
              p = i
  elif a[p] < 0:
      for i in range(n - 2, -1, -1):
          while a[i] > a[i + 1]:
              a[i] += a[p]
              seq.append((p, i))
          if a[i] < a[p]:
              p = i
  print(len(seq))
  for a, b in seq:
      print("{} {}".format(a + 1, b + 1))
  
problem_description: Statement
  
  Snuke has an integer sequence, a, of length N. The i-th element of a
  (1-indexed) is a_{i}.
  
  He can perform the following operation any number of times:
  
    * Operation: Choose integers x and y between 1 and N (inclusive), and add a_x to a_y.
  
  He would like to perform this operation between 0 and 2N times (inclusive) so
  that a satisfies the condition below. Show one such sequence of operations. It
  can be proved that such a sequence of operations always exists under the
  constraints in this problem.
  
    * Condition: a_1 \leq a_2 \leq ... \leq a_{N}
samples: [{"input": "3\n    -2 5 -1", "output": "2\n    2 3\n    3 3\n    \n\n  * After the first operation, a = (-2,5,4).\n  * After the second operation, a = (-2,5,8), and the condition is now satisfied.\n\n* * *"}, {"input": "2\n    -1 -3", "output": "1\n    2 1\n    \n\n  * After the first operation, a = (-4,-3) and the condition is now satisfied.\n\n* * *"}, {"input": "5\n    0 0 0 0 0", "output": "0\n    \n\n  * The condition is satisfied already in the beginning."}]