만드는 중입니다

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

KK국지

시간 제한1초메모리 제한1024 MB

요약
나무 구조의 도시들을 연결된 나라로 나누고, 각 나라의 전투력 합이 U를 넘지 않게 하면서 (U - 나라의 전투력)의 제곱 합을 최소화합니다.
난이도

보통10점 중 6점

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

전투력 분배

당신은 세계적으로 인기 있는 전쟁 시뮬레이션 게임 shake!를 플레이하고 있다. 게임에는 1번부터 NN번까지 번호가 매겨진 NN개의 도시가 있고, 각 도시는 전투력을 가진다. 또한 서로 다른 두 도시를 양방향으로 잇는 N−1N-1개의 도로가 있어서, 도로를 따라 임의의 도시 간 이동이 가능하다.

당신은 여러 국가를 건국하여 전쟁 시뮬레이션을 진행하려고 한다. 각 국가는 적어도 하나의 도시를 포함해야 하며, 각 도시는 정확히 하나의 국가에 속해야 한다. 또한 같은 국가에 속한 임의의 두 도시는 다른 국가의 도시를 거치지 않고 도로를 따라 이동할 수 있어야 한다.

국가가 지나치게 강하면 전쟁에서 쉽게 이기게 되어 게임의 재미가 떨어진다. 그래서 전투력을 균형 있게 나누는 것이 중요하다. 국가의 전투력은 그 국가에 포함된 모든 도시의 전투력의 합이다. 당신은 전투력 상한 UU를 정했다. 각 국가의 전투력은 UU를 넘지 않아야 하며, kk (1≤k≤N1 \leq k \leq N)개의 국가가 전투력 w1,w2,…,wkw_1, w_2, \dots, w_k를 가질 때 ∑i=1k(U−wi)2\sum_{i=1}^{k} (U-w_i)^2이 최소가 되도록 나누는 것이 균형 잡힌 분배 방법이다. 이 기준에 따라 국가의 전투력을 균형 있게 분배하시오.

입력

첫 번째 줄에 도시의 수 NN이 주어진다. (1≤N≤10 0001 \leq N \leq 10\,000)

두 번째 줄부터 NN개의 줄에 걸쳐 ii번 도시의 전투력 cic_i가 한 줄에 하나씩 주어진다. (1≤ci≤1001 \leq c_i \leq 100)

이어서 N−1N-1개의 줄에 도로 정보가 주어진다. 각 줄에는 도로가 잇는 두 도시의 번호가 공백으로 구분되어 주어진다.

마지막 줄에 국가의 전투력 상한 UU가 주어진다. (max⁡1≤i≤Nci≤U≤100\max_{1 \leq i \leq N} c_i \leq U \leq 100)

출력

∑i=1k(U−wi)2\sum_{i=1}^{k} (U-w_i)^2의 최솟값을 출력한다.

예제3

  1. 예제 1

    입력
    10
    3
    2
    1
    1
    6
    3
    2
    1
    2
    2
    2 9
    10 4
    5 1
    3 7
    6 9
    7 2
    9 1
    2 10
    8 2
    10
    
    예상 출력
    21
    
  2. 예제 2

    입력
    4
    2
    2
    2
    2
    1 3
    3 2
    4 3
    3
    
    예상 출력
    4
    
  3. 예제 3

    입력
    4
    2
    2
    2
    2
    1 3
    3 2
    4 3
    8
    
    예상 출력
    0