만드는 중입니다

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

분필 도둑

면접 대비

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

요약
트리에서 연결된 교실들을 골라 각 교실에서 같은 개수의 분필을 훔칩니다. 그 개수는 선택한 교실 중 가장 적은 분필 수를 넘지 않을 때 총합의 최댓값을 구합니다.
난이도

보통10점 중 5점

유형
유니온 파인드, 정렬, 트리
정답자
아직 제출이 없습니다

문제

수업 도중 분필이 부족한 적이 한 번씩은 있을 것이다. 단대소프트고에는 이에 대한 전설이 있다. 바로 분필 도둑 나홍칠이다.

놀랍게도 분필 도둑 나홍칠은 실제로 존재한다. 나홍칠이 분필을 훔치는 과정은 다음과 같다.

  1. 먼저 교실 몇 개를 고른다. 고른 교실들은 모두 연결되어 있어야 한다. 즉 고른 교실 중 임의의 두 교실 uu, vv에 대하여, 고른 교실만을 지나서 uu와 vv 사이를 오갈 수 있어야 한다.
  2. 나홍칠은 모두에게 평등하기 때문에 선택된 교실들에서 모두 같은 양의 분필을 훔쳐 간다. 이때 원래 교실에 있는 분필의 양을 초과하는 분필을 가져가는 것은 불가능하다. 예를 들어 교실에 분필이 3개 있을 때 4개 이상의 분필을 훔치는 것은 불가능하다.

단대소프트고는 교실 NN개를 복도 N−1N-1개로 연결한 형태로 되어있다. 또한 임의의 두 교실을 하나 이상의 복도를 통해 이동하는 방법이 존재한다.

나홍칠이 현재 상태에서 위 과정을 한번 실행한다고 했을 때, 분필을 최대 몇 개 훔칠 수 있을지 구해보자.

입력

첫째 줄에 교실의 수 NN이 입력된다. (1≤N≤100,000)(1 \le N \le 100,000)

둘째 줄에는 교실 ii에 있는 분필의 수 AiA_i가 공백으로 구분되어 NN개 입력된다. (1≤Ai≤1,000,000)(1 \le A_i \le 1,000,000)

다음 N−1N-1개 줄에는 교실 uu와 교실 vv가 복도로 연결되어 있음을 뜻하는 두 정수 uu, vv가 공백을 사이로 한 줄에 하나씩 입력된다. (1≤u,v≤N,u≠v)(1 \le u, v \le N, u \ne v)

출력

첫째 줄에 나홍칠이 한 번에 훔칠 수 있는 최대 분필 수를 출력한다.

예제3

  1. 예제 1

    입력
    7
    1 3 6 3 2 5 1
    1 2
    2 6
    3 6
    4 6
    5 6
    4 7
    
    예상 출력
    12
    
  2. 예제 2

    입력
    7
    1 2 5 7 6 3 1
    1 2
    2 3
    3 4
    4 5
    5 6
    6 7
    
    예상 출력
    15
    
  3. 예제 3

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