아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

트리 조각하기

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

요약
트리와 제거해야 할 정점 집합이 주어질 때, 표시된 정점만 폭탄으로부터 거리 p 미만에 오도록 폭탄을 배치하고 p의 최댓값을 구한다.
난이도

어려움10점 중 8점

유형
트리, 이분 탐색, 그리디, DFS
정답자
아직 제출이 없습니다

문제

타고난 트리 조각가 온조는 오늘도 완벽한 작품을 만들기 위해 트리 TT를 준비했다. 온조는 뛰어난 예술적 직관으로 조각할 작품을 머릿속에 그렸고, 먼저 조각상의 전체적인 틀을 잡기 위해 TT에서 제거할 정점들을 정했다.

그런데 TT의 정점들은 매우 단단해서 일반적인 도구로는 제거할 수 없고, 폭탄을 써야 한다. 그래서 온조는 TT의 몇몇 정점에 폭탄을 설치한 뒤 한 번에 폭발시키려고 한다. 모든 폭탄의 세기는 양의 정수 pp로 같으며, 모든 폭탄이 폭발한 뒤 폭탄이 설치된 정점과의 거리가 pp 미만인 정점들은 제거된다. 이 과정에서 제거해야 할 정점이 제거되지 않거나 제거하지 않아야 할 정점이 제거되면 작품이 망가지므로, 온조는 그런 일이 일어나지 않도록 폭탄을 설치할 것이다.

온조는 폭발 과정도 작품의 한 부분이라고 생각하기 때문에 폭탄의 세기 pp가 클수록 작품의 예술적 가치가 높다고 여긴다. 트리 TT와 제거해야 할 정점들이 주어지면 폭탄의 세기 pp로 가능한 값 중 최댓값을 구해서 온조를 도와주자. 모든 정점을 제거해야 하는 경우나 모든 정점을 제거하지 않아야 하는 경우는 주어지지 않는다.

입력

첫째 줄에 트리 TT를 구성하는 정점의 개수 NN이 주어진다. (2≤N≤200 0002 \le N \le 200\,000)

둘째 줄에 NN개의 수 C_iC\_i가 공백을 사이에 두고 주어진다. C_iC\_i는 00 또는 11이다. C_i=1C\_i=1인 경우 ii번 정점을 제거해야 한다는 의미이며, C_i=0C\_i=0인 경우 ii번 정점을 제거하지 않아야 한다는 의미이다.

셋째 줄부터 (N−1)(N-1)개 줄에 걸쳐 간선 정보가 주어지며, 각 줄에는 하나의 간선이 잇는 두 정점의 번호 uu, vv가 공백을 사이에 두고 주어진다. (1≤u≤N1 \le u \le N, 1≤v≤N1 \le v \le N, u≠vu \ne v)

출력

첫째 줄에 폭탄의 세기 pp로 가능한 값 중 최댓값을 출력한다.

예제1

  1. 예제 1

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