题目描述
给定一棵包含 n 个顶点的树,顶点编号为 1 到 n。树的每一条边都关联着两个非负整数 x 和 y。
考虑 1 到 n 的一个排列 p,其中 pi 表示分配给顶点 i 的值。
对于一条边 (u,v),满足 u<v 且关联的值为 x 和 y,其贡献定义如下:
$$\begin{cases}
x & \text{如果 } p_u > p_v, \\
y & \text{否则。}
\end{cases}$$该排列的值为所有边的贡献之和。
你的任务是找出任意一个使得总值最大的排列 p。
注:长度为 n 的排列是 1 到 n 的 n 个不同整数按任意顺序组成的数组。例如,[2,3,1,5,4] 是一个排列,但 [1,2,2] 不是排列(2 出现了两次),[1,3,4] 也不是排列(n=3,数组中却有 4)。
输入格式
每个测试包含多组数据。第一行为测试组数 t(1≤t≤104)。各测试组的描述如下。
第一行包含一个整数 n(2≤n≤2⋅105),表示树的顶点数。
接下来的 n−1 行,每行包含四个整数 u,v,x,y(1≤u<v≤n,1≤x,y≤109),表示一条连接 u 和 v 的边,以及其关联的值 x 和 y。保证这些边构成一棵树。
保证所有测试组中 n 的总和不超过 2⋅105。
输出格式
对于每个测试组,输出一个 1 到 n 的排列 p,最大化题目定义的总值。若有多解,输出任意一个均可。
样例
3
3
1 2 2 1
2 3 3 2
5
1 2 1 3
1 5 2 1
2 4 5 7
2 3 1 100
5
2 5 5 2
3 5 4 6
4 5 1 5
1 5 3 5
3 2 1
2 3 5 4 1
1 5 2 3 4
提示
样例解释
第一组测试:
考虑排列 p=[3,2,1],其值为 5=2+3,具体如下:
- 由于 p1>p2,第一条边贡献 +2。
- 由于 p2>p3,第二条边贡献 +3。
其它一些排列的值如下:
- p=[1,2,3],值为 1+2=3。
- p=[1,3,2],值为 1+3=4。
- p=[3,1,2],值为 2+2=4。
第二组测试:
排列 p=[2,3,5,4,1] 的值为 3+2+7+100=112。另一个可行答案是 p=[2,3,4,5,1]。