트리 조각하기

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

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

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

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

입력

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

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

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

출력

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