G. Дерево с весами
ограничение по времени на тест
5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Дано дерево на $$$n$$$ вершинах, пронумерованных числами $$$1,2,\dots,n$$$. $$$i$$$-е ребро соединяет вершины $$$u_i$$$ и $$$v_i$$$ и имеет некоторый неизвестный целый положительный вес $$$w_i$$$. Вам также известны расстояния $$$d_i$$$ между вершинами $$$i$$$ и $$$i+1$$$ для всех $$$1 \le i \le n-1$$$ (это расстояние равно сумме весов рёбер на простом пути между вершинами дерева $$$i$$$ и $$$i+1$$$).

Найдите вес каждого ребра. Если существует несколько решений, выведите любое из них. Если не существует весов $$$w_i$$$, согласующихся со всеми данными, выведите одно целое число $$$-1$$$.

Входные данные

Первая строка содержит целое число $$$n$$$ ($$$2 \le n \le 10^5$$$).

В $$$i$$$-й из следующих $$$n-1$$$ строк содержатся по два числа: $$$u_i$$$ и $$$v_i$$$ ($$$1 \le u_i,v_i \le n$$$, $$$u_i \ne v_i$$$).

В последней строке содержится $$$n-1$$$ целых чисел $$$d_1,\dots,d_{n-1}$$$ ($$$1 \le d_i \le 10^{12}$$$).

Гарантируется, что заданные ребра образуют дерево.

Выходные данные

Если решения не существует, выведите одно целое число $$$-1$$$. В противном случае выведите $$$n-1$$$ строку, содержащую веса $$$w_1,\dots,w_{n-1}$$$.

Если существует несколько решений, выведите любое из них.

Примеры
Входные данные
5
1 2
1 3
2 4
2 5
31 41 59 26
Выходные данные
31
10
18
8
Входные данные
3
1 2
1 3
18 18
Выходные данные
-1
Входные данные
9
3 1
4 1
5 9
2 6
5 3
5 8
9 7
9 2
236 205 72 125 178 216 214 117
Выходные данные
31
41
59
26
53
58
97
93
Примечание

В первом примере дерево выглядит следующим образом:

Во втором примере вес $$$w_2$$$ не может быть равен $$$0$$$, поскольку должен быть целым положительным числом. Поэтому решения нет.

В третьем примере дерево выглядит следующим образом: