output_description: Use the following format:
  
      
      
      M
      d_1 \ldots d_N
      
  
  where M is the maximum possible score, and d_i is the integer to write on
  Vertex i. d_1,d_2,\ldots,d_N must be a permutation of c_1,c_2,\ldots,c_N. If
  there are multiple ways to achieve the maximum score, any of them will be
  accepted.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      a_1 b_1
      :
      a_{N-1} b_{N-1}
      c_1 \ldots c_N
attempt: N = int(input())
  if N == 1:
      C1, C2 = map(int, input().split())
      print(min(C1, C2))
      print(str(C1) + " " + str(C2))
      quit()
  
  AB = [list(map(int, input().split())) for i in range(N - 1)]
  C = list(map(int, input().split()))
  
  T = [[i, 0] for i in range(N)]
  for a, b in AB:
      T[a - 1][1] += 1
      T[b - 1][1] += 1
  
  T = sorted(T, key=lambda x: x[1])
  C = sorted(C)
  ans_d = sorted([[C[i], T[i][0]] for i in range(N)], key=lambda x: x[1])
  ans_d = [str(a[0]) for a in ans_d]
  M = 0
  for a, b in AB:
      M += min(int(ans_d[a - 1]), int(ans_d[b - 1]))
  
  print(M)
  print(" ".join(ans_d))
  
problem_description: Statement
  
  You are given a tree with N vertices 1,2,\ldots,N, and positive integers
  c_1,c_2,\ldots,c_N. The i-th edge in the tree (1 \leq i \leq N-1) connects
  Vertex a_i and Vertex b_i.
  
  We will write a positive integer on each vertex in T and calculate our _score_
  as follows:
  
    * On each edge, write the smaller of the integers written on the two endpoints.
    * Let our score be the sum of the integers written on all the edges.
  
  Find the maximum possible score when we write each of c_1,c_2,\ldots,c_N on
  one vertex in T, and show one way to achieve it. If an integer occurs multiple
  times in c_1,c_2,\ldots,c_N, we must use it that number of times.
samples: [{"input": "5\n    1 2\n    2 3\n    3 4\n    4 5\n    1 2 3 4 5", "output": "10\n    1 2 3 4 5\n    \n\nIf we write 1,2,3,4,5 on Vertex 1,2,3,4,5, respectively, the integers written\non the four edges will be 1,2,3,4, for the score of 10. This is the maximum\npossible score.\n\n* * *"}, {"input": "5\n    1 2\n    1 3\n    1 4\n    1 5\n    3141 59 26 53 59", "output": "197\n    59 26 3141 59 53\n    \n\nc_1,c_2,\\ldots,c_N may not be pairwise distinct."}]