output_description: Print the maximum possible value M of the final integer on the blackboard, and
  a sequence of operations x_i, y_i that maximizes the final integer, in the
  format below.
  
  Here x_i and y_i represent the integers x and y chosen in the i-th operation,
  respectively.
  
  If there are multiple sequences of operations that maximize the final integer,
  any of them will be accepted.
  
      
      
      M
      x_1 y_1
      :
      x_{N-1} y_{N-1}
      
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 A_2 ... A_N
attempt: N = int(input())
  AA = list(map(int, input().split()))  # 0を含む可能性あり
  
  A = []
  count = 0
  for i in range(N):
      if AA[i] != 0:
          A.append(AA[i])
      else:
          count += 1
  
  NN = N - count
  B = [abs(A[i]) for i in range(NN)]
  
  if count == 0:
      det = 1
      s = A[0] // B[0]  # 最初のやつの符号
      for i in range(1, NN):
          if s * A[i] < 0:
              det = -1
              break
  
      if det == 1:  # 全て同符号
          m = min(B)
  
          M = sum(B) - 2 * m
          print(M)
  
          for i in range(NN):
              if m == B[i]:
                  p = i
                  break
  
          C = [A[i] // B[i] for i in range(NN)]
  
          C[p] *= -1
  
      else:  # 異符号が含まれる
          M = sum(B)
          print(M)
          C = [A[i] // B[i] for i in range(NN)]
  
      fp = -1  # firstplus
      fm = -1  # firstminus
      for i in range(NN):
          if fp == -1 and C[i] == 1:
              fp = i
          elif fm == -1 and C[i] == -1:
              fm = i
          elif fp != -1 and fm != -1:
              break
  
      X = []
      Y = []
  
      for i in range(NN):
          if i == fp or i == fm:
              continue
          if C[i] == -1:
              X.append(i)
          else:
              Y.append(i)
  
      x = A[fp]
      for i in X:
          print(x, A[i])
          x -= A[i]
  
      y = A[fm]
      for i in Y:
          print(y, A[i])
          y -= A[i]
  
      print(x, y)
  
  elif A == []:
      print(0)
      for i in range(count - 1):
          print(0, 0)
  
  else:
  
      det = 1
      s = A[0] // B[0]  # 最初のやつの符号
      for i in range(1, NN):
          if s * A[i] < 0:
              det = -1
              break
  
      M = sum(B)
      print(M)
  
      if det == 1:  # 全て同符号
          # これがまずい
          if s < 0:
              for i in range(count - 1):
                  print(0, 0)
              x = 0
              for i in range(NN):
                  print(x, A[i])
                  x -= A[i]
          else:
              for i in range(count - 1):
                  print(0, 0)
              x = 0
              for i in range(NN - 1):
                  print(x, A[i])
                  x -= A[i]
              print(A[NN - 1], x)
  
      else:  # 異符号が含まれる
          # こちらは今まで通り処理して最後に0を引きまくれば良い
  
          C = [A[i] // B[i] for i in range(NN)]
  
          fp = -1  # firstplus
          fm = -1  # firstminus
          for i in range(NN):
              if fp == -1 and C[i] == 1:
                  fp = i
              elif fm == -1 and C[i] == -1:
                  fm = i
              elif fp != -1 and fm != -1:
                  break
  
          X = []
          Y = []
  
          for i in range(NN):
              if i == fp or i == fm:
                  continue
              if C[i] == -1:
                  X.append(i)
              else:
                  Y.append(i)
  
          x = A[fp]
          for i in X:
              print(x, A[i])
              x -= A[i]
  
          y = A[fm]
          for i in Y:
              print(y, A[i])
              y -= A[i]
  
          print(x, y)
  
          for i in range(count):
              print(x - y, 0)
  
problem_description: Statement
  
  There are N integers, A_1, A_2, ..., A_N, written on a blackboard.
  
  We will repeat the following operation N-1 times so that we have only one
  integer on the blackboard.
  
    * Choose two integers x and y on the blackboard and erase these two integers. Then, write a new integer x-y.
  
  Find the maximum possible value of the final integer on the blackboard and a
  sequence of operations that maximizes the final integer.
samples: [{"input": "3\n    1 -1 2", "output": "4\n    -1 1\n    2 -2\n    \n\nIf we choose x = -1 and y = 1 in the first operation, the set of integers\nwritten on the blackboard becomes (-2, 2).\n\nThen, if we choose x = 2 and y = -2 in the second operation, the set of\nintegers written on the blackboard becomes (4).\n\nIn this case, we have 4 as the final integer. We cannot end with a greater\ninteger, so the answer is 4.\n\n* * *"}, {"input": "3\n    1 1 1", "output": "1\n    1 1\n    1 0"}]