QOJ.ac

QOJ

Time Limit: 4 s Memory Limit: 128 MB Total points: 100

# 6585. Zadanie

الإحصائيات

Bajtazar przygotowuje właśnie zadanie na konkurs programistyczny. Napisał już szkic treści:

W Bajtocji jest $n$ miast połączonych $n$ - 1 dwukierunkowymi drogami w taki sposób, że korzystając z sieci drogowej da się przejechać pomiędzy dowolnymi dwoma miastami. Przebycie drogi łączącej dwa bezpośrednio połączone miasta zajmuje jedną godzinę. Miasta są ponumerowane od 1 do $n$. W mieście $i$ mieszka $a_{i}$ mieszkańców.

W przyszłym roku w Bajtocji mają się odbyć wybory. Aby mieć pełną kontrolę nad przebiegiem głosowania, król Bajtocji postanowił, że głosowanie zostanie zorganizowane w tylko jednym mieście. Wszyscy mieszkańcy Bajtocji udadzą się najkrótszą drogą do miasta z urną wyborczą i tam oddadzą głos. Teraz pozostało wybrać miasto, w którym odbędzie się głosowanie. Wybór ten zależy od wielu czynników. W szczególności, dla każdego miasta $i$ chcielibyśmy obliczyć łączny czas potrzebny wszystkim mieszkańcom Bajtocji na dotarcie do miasta $i$ (oznaczmy tę wartość przez $b_{i}$) [...]

Bajtazar miał już przygotowane wyjątkowo trudne testy do zadania, jednak przypadkiem stracił połowę danych. Teraz z każdego testu pozostały mu tylko opisy połączeń drogowych i pliki wyjściowe zawierające wartości $b_{i}$. Na tej podstawie chciałby odtworzyć liczbę mieszkańców każdego miasta Bajtocji.

Input Format

W pierwszym wierszu wejścia znajduje się liczba całkowita $n$ ($2 \le n \le 300\,000$) oznaczająca liczbę miast w Bajtocji. Każdy z kolejnych $n$ - 1 wierszy zawiera opis jednego połączenia drogowego w postaci pary liczb całkowitych $x_{i}$, $y_{i}$ (1 ≤ $x_{i}$, $y_{i}$ ≤ $n$). Oznaczają one, że miasta $x_{i}$ oraz $y_{i}$ są połączone drogą.

Kolejny wiersz zawiera ciąg $n$ liczb całkowitych $b_{i}$ ($0 \le b_{i} \le 10^{9}$).

Output Format

Wypisz jeden wiersz z ciągiem $n$ liczb całkowitych $a_{i}$. Liczba $a_{i}$ powinna oznaczać liczbę mieszkańców miasta Bajtocji numer $i$. Dla podanego ciągu $a_{i}$, po rozwiązaniu zadania Bajtazara powinno się otrzymać ciąg $b_{i}$ podany na wejściu.

Dane wejściowe są tak dobrane, że odpowiedź zawsze istnieje. Jeśli istnieje wiele poprawnych odpowiedzi, Twój program może wypisać dowolną z nich.

Examples

Input

2
1 2
17 31

Output

31 17

Bajtazar正在为一个编程竞赛准备一道题目。他已经写好了题目草稿:

在巴伊托奇亚有 $n$ 座城市,由 $n$ - 1 条双向道路连接,使得通过道路网络可以在任意两座城市之间通行。走完连接两个直接相连城市的道路需要一小时。城市编号从1到 $n$。在城市 $i$ 居住着 $a_{i}$ 名居民。

明年巴伊托奇亚将举行选举。为了完全控制投票过程,巴伊托奇亚国王决定只在一个城市组织投票。所有巴伊托奇亚居民都将沿着最短路径前往设有投票箱的城市并进行投票。现在需要选择一个城市作为投票地点。这个选择取决于许多因素。特别是,对于每个城市 $i$,我们希望计算所有巴伊托奇亚居民到达城市 $i$ 所需的总时间(我们将此值记为 $b_{i}$)[...]

Bajtazar已经为这道题准备了非常难的测试数据,但意外地丢失了一半数据。现在每个测试只剩下道路连接的描述和包含 $b_{i}$ 值的输出文件。基于此,他想恢复巴伊托奇亚每个城市的居民数量。

Input Format

输入的第一行包含一个整数 $n$ ($2 \le n \le 300\,000$),表示巴伊托奇亚的城市数量。接下来的 $n$ - 1 行每行包含一个道路连接的描述,形式为一对整数 $x_{i}$,$y_{i}$ ($1 \le x_{i}, y_{i} \le n$)。它们表示城市 $x_{i}$ 和 $y_{i}$ 之间有一条道路连接。

下一行包含 $n$ 个整数 $b_{i}$ ($0 \le b_{i} \le 10^{9}$) 的序列。

Output Format

输出一行,包含 $n$ 个整数 $a_{i}$ 的序列。数字 $a_{i}$ 应表示巴伊托奇亚第 $i$ 个城市的居民数量。对于给定的 $a_{i}$ 序列,在解决了Bajtazar的问题后,应该得到输入中给出的 $b_{i}$ 序列。

输入数据经过精心选择,因此答案总是存在的。如果存在多个正确答案,你的程序可以输出其中任意一个。

Examples

Input

2
1 2
17 31

Output

31 17