A843.Balancing a Tree--Gold
提高+/省选-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
Farmer John has conducted an extensive study of the evolution of different cow
breeds. The result is a rooted tree with N (2≤N≤105) nodes labeled
1…N, each node corresponding to a cow breed. For each i∈[2,N],
the parent of node i is node pi (1≤pi<i), meaning that breed i
evolved from breed pi. A node j is called an ancestor of node i if
j=pi or j is an ancestor of pi.
Every node i in the tree is associated with a breed having an integer number
of spots si. The "imbalance" of the tree is defined to be the maximum of
∣si−sj∣ over all pairs of nodes (i,j) such that j is an ancestor of
i.
Farmer John doesn't know the exact value of si for each breed, but he knows
lower and upper bounds on these values. Your job is to assign an integer value
of si∈[li,ri] (0≤li≤ri≤109) to each node such that the
imbalance of the tree is minimized.
输入格式
The first line contains T (1≤T≤10), the number of independent test
cases to be solved, and an integer B∈0,1.
Each test case starts with a line containing N, followed by N−1 integers
p2,p3,…,pN.
The next N lines each contain two integers li and ri.
It is guaranteed that the sum of N over all test cases does not exceed
105.
输出格式
For each test case, output one or two lines, depending on the value of B.
The first line for each test case should contain the minimum imbalance.
If B=1, then print an additional line with N space-separated integers
s1,s2,…,sN containing an assignment of spots that achieves the
above imbalance. Any valid assignment will be accepted.
输入输出样例
输入#1
3 0 3 1 1 0 100 1 1 6 7 5 1 2 3 4 6 6 1 6 1 6 1 6 5 5 3 1 1 0 10 0 1 9 10
输出#1
3 1 4
说明/提示
For the first test case, the minimum imbalance is 3. One way to achieve
imbalance 3 is to set [s1,s2,s3]=[4,1,7].