I. Концы
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
1024 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Вам дано дерево из $$$n$$$ вершин, где вершина $$$i$$$ имеет вес $$$w_i$$$, а также целое число $$$k$$$.

Пусть корнем дерева является вершина $$$x$$$. Вы можете выбрать подмножество вершин $$$S$$$ такое, что $$$|S| = k$$$ и $$$x \in S$$$. Пусть $$$f(i)$$$ — сумма весов всех вершин из $$$S$$$, лежащих на пути от вершины $$$i$$$ до корня. Счётом подмножества $$$S$$$ называется величина $$$\sum_{i \in S} f(i)$$$.

Для каждой вершины $$$1 \le x \le n$$$ найдите максимальный возможный счёт среди всех подмножеств $$$S$$$, если бы корнем дерева была вершина $$$x$$$.

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 500$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$2 \le n \le 4000$$$, $$$1 \le k \le n$$$).

Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$w_1, w_2,\ldots, w_n$$$ ($$$1 \le w_i \le 10^9$$$).

Каждая из следующих $$$n - 1$$$ строк содержит два целых числа $$$u$$$ и $$$v$$$ ($$$1 \le u, v \le n$$$), указывающих на то, что вершины $$$u$$$ и $$$v$$$ соединены ребром. Гарантируется, что заданный граф является деревом.

Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$4000$$$.

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

Для каждого набора входных данных выведите $$$n$$$ целых чисел. Для каждого $$$x$$$ от $$$1$$$ до $$$n$$$ выведите максимально возможный счёт среди всех подмножеств $$$S$$$, если бы корнем дерева была вершина $$$x$$$.

Пример
Входные данные
3
6 3
2 12 3 6 9 7
1 2
1 3
3 4
4 5
4 6
5 5
10000 1000 100 10 1
1 2
2 3
3 4
3 5
9 5
7 11 5 16 13 10 12 9 15
8 1
1 6
3 7
4 6
6 7
6 5
9 1
2 8
Выходные данные
27 57 30 39 51 45
54311 15311 12511 12451 12415
120 150 134 170 155 122 150 132 162
Примечание

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

Для каждого $$$1 \le x \le n$$$ одним из оптимальных подмножеств $$$S$$$ является:

  • $$$x = 1$$$: $$$S = \{1, 2, 5\}$$$; счёт равен $$$(2) + (12 + 2) + (9 + 2) = 27$$$,
  • $$$x = 2$$$: $$$S = \{2, 4 ,5\}$$$; счёт равен $$$(12) + (6 + 12) + (9 + 6 + 12) = 57$$$,
  • $$$x = 3$$$: $$$S = \{2, 3, 5\}$$$; счёт равен $$$(12 + 3) + (3) + (9 + 3) = 30$$$,
  • $$$x = 4$$$: $$$S = \{2, 4, 5\}$$$; счёт равен $$$(12 + 6) + (6) + (9 + 6) = 39$$$,
  • $$$x = 5$$$: $$$S = \{2, 4 ,5\}$$$; счёт равен $$$(12 + 6 + 9) + (6 + 9) + (9) = 51$$$,
  • $$$x = 6$$$: $$$S = \{2 ,4, 6\}$$$; счёт равен $$$(12 + 6 + 7) + (6 + 7) + (7) = 45$$$.

Во втором наборе входных данных $$$S = \{1, 2, 3, 4, 5\}$$$ для всех $$$x$$$.