Яндекс.Алгоритм 2011: Квалификация 2 |
---|
Закончено |
Королевство Берляндия представляет собой множество из n городов, связанных n - 1 железнодорожными путями. Каждый путь соединяет ровно два различных города. Столица находится в городе номер 1. Из каждого города существует способ доехать по железной дороге до столицы.
В i-ом городе стоит дивизия солдат номер i, каждая дивизия характеризуется числом ai, означающим приоритет; чем меньше это число, тем выше приоритет у этой дивизии. Все значения ai — различны.
Однажды Король Берляндии Берл Великий объявил всеобщую мобилизацию, и для этого каждая дивизия должна прибыть в столицу. Каждый день из каждого города, кроме столицы, по каждому железнодорожному пути отходит поезд, который имеет некоторую конечную вместимость cj, выражаемую в максимальном количестве дивизий, которое этот поезд может увезти за один раз. Каждый поезд двигается по направлению сокращения расстояния до столицы. Поезд заканчивает свой путь на противоположном конце железнодорожного пути на следующий день. Таким образом, каждый поезд проезжает из города в соседний (в которой и заканчивает свой путь) по направлению к столице.
В первую очередь из числа дивизий, находящихся в городе, на поезд садятся дивизии с наименьшим числом ai, потом со следующим по величине и так далее, пока либо поезд не будет заполнен, либо пока все дивизии не будут погружены. Таким образом, некоторые дивизии могут оставаться в городе в ожидании поезда несколько дней.
Длительность путешествия поезда из одного города в другой всегда равно 1 дню. Все дивизии начинают свое передвижение одновременно и заканчивают в столице, откуда больше никуда не перемещаются. Каждая дивизия передвигается по простому пути из своего города в столицу, независимо от того, сколько времени займет это путешествие.
Ваша задача — найти для каждой дивизии, через сколько дней она прибудет в столицу Берляндии. Отсчет времени начинается с дня номер 0.
Первая строка содержит единственное число целое n (1 ≤ n ≤ 5000) — количество городов в Берляндии. Вторая строка содержит n целых разделенных пробелом чисел a1, a2, ..., an, где ai означает приоритет дивизии, находящейся в городе номер i. Все числа a1, a2, ..., an различны (1 ≤ ai ≤ 109). Далее в n - 1 строках даны описания железнодорожных путей тройками целых чисел vj, uj, cj, где vj, uj — номера городов, соединяемых j-ым железнодорожным путем, а cj означает максимальную вместимость поезда, курсирующего по этому пути (1 ≤ vj, uj ≤ n, vj ≠ uj, 1 ≤ cj ≤ n).
Выведите последовательность t1, t2, ..., tn, где ti означает количество дней, через которое дивизия из города i прибудет в столицу. Числа разделяйте пробелами.
4
40 10 30 20
1 2 1
2 3 1
4 2 1
0 1 3 2
5
5 4 3 2 1
1 2 1
2 3 1
2 4 1
4 5 1
0 1 4 2 3
Название |
---|