output_description: Print the maximum possible score of a'.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      a_1 a_2 ... a_{3N}
attempt: from heapq import *
  
  (N,) = map(int, input().split())
  A = list(map(int, input().split()))
  s = sum(A[:N])
  rs = [s] + [0] * N
  l = []
  for i in range(N):
      heappush(l, A[i])
  for i in range(N, 2 * N):
      s += A[i]
      heappush(l, A[i])
      x = heappop(l)
      s -= x
      rs[i - N + 1] = s
  l2 = []
  s2 = 0
  for i in range(2 * N, 3 * N):
      heappush(l2, -A[i])
      s2 += A[i]
  
  rs2 = [0] * N + [s2]
  for i in range(2 * N - 1, N - 1, -1):
      s2 += A[i]
      heappush(l2, -A[i])
      x = -heappop(l2)
      #    print(A[i])
      #    print(x)
      s2 -= x
      rs2[i - N] = s2
  # print(rs2)
  r = -(10**18)
  for i in range(N + 1):
      c = rs[i] - rs2[i]
      r = max(c, r)
  print(r)
  
problem_description: Statement
  
  Let N be a positive integer.
  
  There is a numerical sequence of length 3N, a = (a_1, a_2, ..., a_{3N}). Snuke
  is constructing a new sequence of length 2N, a', by removing exactly N
  elements from a without changing the order of the remaining elements. Here,
  the score of a' is defined as follows: (the sum of the elements in the first
  half of a') - (the sum of the elements in the second half of a').
  
  Find the maximum possible score of a'.
samples: [{"input": "2\n    3 1 4 1 5 9", "output": "1\n    \n\nWhen a_2 and a_6 are removed, a' will be (3, 4, 1, 5), which has a score of (3\n+ 4) - (1 + 5) = 1.\n\n* * *"}, {"input": "1\n    1 2 3", "output": "-1\n    \n\nFor example, when a_1 are removed, a' will be (2, 3), which has a score of 2 -\n3 = -1.\n\n* * *"}, {"input": "3\n    8 2 2 7 4 6 5 3 8", "output": "5\n    \n\nFor example, when a_2, a_3 and a_9 are removed, a' will be (8, 7, 4, 6, 5, 3),\nwhich has a score of (8 + 7 + 4) - (6 + 5 + 3) = 5."}]