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

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

중국집

면접 대비

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

요약
식당이 있는 교차로까지 가장 먼 거리가 가장 짧아지는 교차로를 골라 그 거리를 구하고 식당이 없으면 -1을 출력합니다.
난이도

보통10점 중 5점

유형
트리, BFS
정답자
아직 제출이 없습니다

문제

수도에는 nn개의 교차로와 이들을 잇는 n−1n-1개의 도로가 있습니다. 도로망은 어느 교차로에서 다른 어느 교차로로도 정확히 한 가지 경로로만 갈 수 있도록 이루어져 있습니다. 즉, 도로망 전체가 하나의 트리(tree)를 이룹니다. 일부 교차로에는 중국집이 있습니다.

Kozik은 수도에 살고 싶어 하며, 어느 한 교차로에 있는 집을 고르려고 합니다. 그는 먹는 것은 좋아하지만 많이 걷는 것은 싫어해서, 도시의 모든 중국집을 둘러보되 가장 먼 중국집까지의 거리가 최소가 되는 위치에 집을 두고 싶어 합니다.

Kozik을 도와, 그가 고른 집이 있는 교차로에서 가장 먼 중국집까지의 거리를 구하세요. 인접한 두 교차로 사이의 거리는 11이라고 가정합니다.

입력

첫째 줄에 교차로의 수 nn (2≤n≤1062 \le n \le 10^6)이 주어집니다.

둘째 줄에 nn개의 정수 s1,s2,…,sns_1, s_2, \dots, s_n (0≤si≤10 \le s_i \le 1)이 주어집니다. sis_i가 11이면 ii번째 교차로에 중국집이 있다는 뜻이고, 00이면 없다는 뜻입니다.

이어지는 n−1n-1개의 줄에는 각각 두 정수 aa와 bb (1≤a,b≤n1 \le a, b \le n)가 주어지며, 이는 교차로 aa와 bb가 도로로 직접 연결되어 있음을 뜻합니다.

출력

Kozik이 고른 집에서 가장 먼 중국집까지의 거리를 한 줄에 정수 하나로 출력하세요. 도시에 중국집이 하나도 없다면 −1-1을 출력하세요.

예제3

  1. 예제 1

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

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

    입력
    2
    0 0
    1 2
    
    예상 출력
    -1