CF1844G Tree Weights

Description

You are given a tree with $ n $ nodes labelled $ 1,2,\dots,n $ . The $ i $ -th edge connects nodes $ u_i $ and $ v_i $ and has an unknown positive integer weight $ w_i $ . To help you figure out these weights, you are also given the distance $ d_i $ between the nodes $ i $ and $ i+1 $ for all $ 1 \le i \le n-1 $ (the sum of the weights of the edges on the simple path between the nodes $ i $ and $ i+1 $ in the tree). Find the weight of each edge. If there are multiple solutions, print any of them. If there are no weights $ w_i $ consistent with the information, print a single integer $ -1 $ .

Input Format

The first line contains a single integer $ n $ ( $ 2 \le n \le 10^5 $ ). The $ i $ -th of the next $ n-1 $ lines contains two integers $ u_i $ and $ v_i $ ( $ 1 \le u_i,v_i \le n $ , $ u_i \ne v_i $ ). The last line contains $ n-1 $ integers $ d_1,\dots,d_{n-1} $ ( $ 1 \le d_i \le 10^{12} $ ). It is guaranteed that the given edges form a tree.

Output Format

If there is no solution, print a single integer $ -1 $ . Otherwise, output $ n-1 $ lines containing the weights $ w_1,\dots,w_{n-1} $ . If there are multiple solutions, print any of them.

Explanation/Hint

In the first sample, the tree is as follows: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1844G/c09bf8722c3aa111bf09fb0e642663d3a1f2fd7d.png)In the second sample, note that $ w_2 $ is not allowed to be $ 0 $ because it must be a positive integer, so there is no solution. In the third sample, the tree is as follows: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1844G/7c57ab2994543c5040c9efc072627cc765133671.png)