만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

꽃의 나라

시간 제한8초메모리 제한2048 MB

요약
각 도시 z마다 z를 포함하고 도시가 정확히 k개인 연결된 부분 트리에서 꽃 수의 합이 최대가 되는 값을 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 트리, 분할 정복
정답자
아직 제출이 없습니다

문제

꽃의 나라에는 nn개의 도시가 있고, ii번째 도시에서는 aia_i송이의 꽃이 자란다. 도로는 n−1n-1개이며, ii번째 도로는 도시 uiu_i와 viv_i를 잇는다. 임의의 두 도시 사이에는 항상 경로가 있다.

나라에서는 꽃 전시회를 열려고 한다. 먼저 전시관을 지을 도시 zz를 고른다. 그다음 정확히 kk개의 도시 x1,x2,…,xkx_1, x_2, \ldots, x_k를 선택하고, 그 도시들의 꽃을 도시 zz로 옮긴다.

주최 측은 도시 xx가 선택되면 xx에서 zz까지 경로 위의 모든 도시도 선택되어야 한다고 정했다. 따라서 도시 zz도 반드시 선택되어야 한다.

각 z=1,2,…,nz = 1, 2, \ldots, n에 대해, 도시 zz에 전시관을 지었을 때 옮길 수 있는 꽃의 최대 개수를 구하라.

입력

첫 줄에 두 정수 nn과 kk가 주어진다 (1≤n≤40 0001 \le n \le 40\,000, 1≤k≤min⁡(n,3000)1 \le k \le \min(n, 3000)).

둘째 줄에는 nn개의 정수 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다 (1≤ai≤5⋅1051 \le a_i \le 5 \cdot 10^5).

이어서 n−1n-1개의 줄에 두 정수 xx와 yy가 주어진다 (1≤x,y≤n1 \le x, y \le n, x≠yx \ne y). 이는 정점 xx와 yy 사이에 간선이 있다는 뜻이다. 주어진 그래프는 트리임이 보장된다.

출력

f1,f2,…,fnf_1, f_2, \ldots, f_n을 한 줄에 출력한다. fif_i는 z=iz = i일 때의 답이다.

예제2

  1. 예제 1

    입력
    5 3
    6 10 4 3 4
    3 4
    4 2
    2 5
    5 1
    
    예상 출력
    20 20 17 17 20
    
  2. 예제 2

    입력
    7 4
    1 3 2 1 7 12 17
    4 6
    1 4
    5 1
    2 5
    7 6
    3 2
    
    예상 출력
    31 13 13 31 21 31 31