output_description: Print N integers representing the number of liters of rain Mountain 1,
  Mountain 2, ..., Mountain N received, in this order.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 A_2 ... A_N
attempt: N = int(input())
  A = [int(i) for i in input().split()]
  ans_1 = [0] * N
  ans_2 = [0] * N
  flg = 0
  for i in range(N):
      if A[i] % 2:
          flg = 1
          break
  if flg:
      ans_1[i] = 2
      if i + 1 == N - 1:
          ans_2[0] = 2
      else:
          ans_2[i + 1] = 2
      for j in range(i + 1, N + i):
          idx = j - N if j >= N else j
          idx_2 = idx - 1 if idx - 1 >= 0 else N - 1
          ans_1[idx] = (A[idx_2] - ans_1[idx_2] // 2) * 2
          idx_3 = idx + 1 if idx + 1 < N else 0
          ans_2[idx_3] = (A[idx] - ans_1[idx] // 2) * 2
      if sum(A) == sum(ans_1):
          print(" ".join(str(ans_1)[1:-1].split(", ")))
      else:
          print(" ".join(str(ans_2)[1:-1].split(", ")))
  
  else:
      for i in range(N - 1):
          if A[i] == A[i + 1]:
              break
      idx = i + 1
      ans_1[idx] = 0
      ans_1[idx] = A[idx] * 2
      for i in range(idx + 1, N + idx):
          ct = i - N if i >= N else i
          ct_2 = N - 1 if ct - 1 < 0 else ct - 1
          ans_1[ct] = (A[ct_2] - ans_1[ct_2] // 2) * 2
          ans_2[ct] = (A[ct_2] - ans_2[ct_2] // 2) * 2
      if sum(A) == sum(ans_1):
          print(" ".join(str(ans_1)[1:-1].split(", ")))
      else:
          print(" ".join(str(ans_2)[1:-1].split(", ")))
  
problem_description: Statement
  
  There are N mountains in a circle, called Mountain 1, Mountain 2, ...,
  Mountain N in clockwise order. N is an _odd_ number.
  
  Between these mountains, there are N dams, called Dam 1, Dam 2, ..., Dam N.
  Dam i (1 \leq i \leq N) is located between Mountain i and i+1 (Mountain N+1 is
  Mountain 1).
  
  When Mountain i (1 \leq i \leq N) receives 2x liters of rain, Dam i-1 and Dam
  i each accumulates x liters of water (Dam 0 is Dam N).
  
  One day, each of the mountains received a non-negative **even** number of
  liters of rain.
  
  As a result, Dam i (1 \leq i \leq N) accumulated a total of A_i liters of
  water.
  
  Find the amount of rain each of the mountains received. We can prove that the
  solution is unique under the constraints of this problem.
samples: [{"input": "3\n    2 2 4", "output": "4 0 4\n    \n\nIf we assume Mountain 1, 2, and 3 received 4, 0, and 4 liters of rain,\nrespectively, it is consistent with this input, as follows:\n\n  * Dam 1 should have accumulated \\frac{4}{2} + \\frac{0}{2} = 2 liters of water.\n  * Dam 2 should have accumulated \\frac{0}{2} + \\frac{4}{2} = 2 liters of water.\n  * Dam 3 should have accumulated \\frac{4}{2} + \\frac{4}{2} = 4 liters of water.\n\n* * *"}, {"input": "5\n    3 8 7 5 5", "output": "2 4 12 2 8\n    \n\n* * *"}, {"input": "3\n    1000000000 1000000000 0", "output": "0 2000000000 0"}]