题目描述
N 個の頂点 1,2,…,N からなる木 T と正の整数 c1,c2,…,cN が与えられます。 i(1 ≤ i ≤ N−1) 番目の辺は頂点 ai と頂点 bi をつなぐ辺です。
T の各頂点に正の整数を書き込んだとき、以下のようにしてスコアを計算します。
- 各辺に、2 つの端点に書き込まれた整数のうち小さい方を書き込む。
- 各辺に書き込まれた整数の総和をスコアとする。
T の各頂点に c1,c2,…,cN を 1 つずつ書き込んだときのスコアの最大値を求め、 それを達成する正の整数の書き込み方を 1 つ構成してください。
c1,c2,…,cN に複数回現れる整数があるときは、 その整数はその回数だけ使わなければならないことに注意してください。
输入格式
入力は以下の形式で標準入力から与えられる。
N a1 b1 : aN−1 bN−1 c1 … cN
输出格式
次の形式で出力せよ。
M d1 … dN
M はスコアの最大値を表す。 di は頂点 i に書き込むべき整数を表す。 d1,d2,…,dN は c1,c2,…,cN の並べ替えでなければならない。
最大のスコアを達成する方法が複数個あるときは、 そのうちのどれを出力してもよい。
题目大意
题意简述
给定一棵 n 个点,(n−1) 条边的无根树。树的分数定义为对于所有边,边的两个端点点权的较小值之和。
确定一个 c1,c2,⋯,cn 的排列 d1,d2,⋯,dn,使得当点 i 的点权为 di 时,树的分数最大。要求输出最大的分数和排列 d。不保证 c 中没有重复元素。
如果有多种方案使分数最大,输出任意一种 d 即可。
输入格式
第一行 n,之后的 (n−1) 行每行两个正整数 ai,bi,表示结点 ai,bi 之间有连边。最后一行 n 个数表示 ci。
样例 #1 解释
结点 1,2,3,4,5 的点权分别为 1,2,3,4,5,树的分数为 1+2+3+4=10。可以证明没有更优方案。
5
1 2
2 3
3 4
4 5
1 2 3 4 5
10
1 2 3 4 5
5
1 2
1 3
1 4
1 5
3141 59 26 53 59
197
59 26 3141 59 53
提示
制約
- 1 ≤ N ≤ 10000
- 1 ≤ ai,bi ≤ N
- 1 ≤ ci ≤ 105
- 与えられるグラフは木である
Sample Explanation 1
頂点 1,2,3,4,5 にそれぞれ 1,2,3,4,5 を書き込むと、 4 つの辺にはそれぞれ 1,2,3,4 が書き込まれるので、スコアは 10 になります。 これが最大のスコアです。
Sample Explanation 2
c1,c2,…,cN は互いに異なるとは限りません。