만드는 중입니다

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

귀경길 교통상황을 알려드립니다

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

요약
나무 모양 도로망에서 모든 차가 1번 지점을 거쳐 빠져나가는 데 걸리는 최소 시간을 구합니다.
난이도

어려움10점 중 8점

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

문제

정현이가 사는 나라에는 각 지역을 잇는 도로망이 있다. 도로망은 NN개의 지점과 두 지점을 잇는 N−1N-1개의 양방향 도로로 이루어져 있으며, 임의의 두 지점 사이를 도로망을 따라 이동할 수 있다. 한 지점에는 도로망을 이용하는 차량이 최대 11대까지 있을 수 있다.

추석 연휴가 끝나고 많은 차량이 도로망을 따라 집으로 돌아가고 있다. 11번 지점에는 도로망을 빠져나가 집으로 갈 수 있는 톨게이트가 있고, 모든 차량은 도로망을 빠져나가기 위해 11번 지점으로 향한다.

11분이 지날 때마다 각 차량은 다음 세 가지 행동 중 하나를 한다.

  1. 이동하지 않고 대기한다.
  2. 자신이 11번 지점에 있다면 톨게이트로 도로망을 빠져나간다.
  3. 자신이 있는 지점과 인접한 다른 지점으로 이동한다. 단, 각 지점에는 차량이 최대 11대까지만 있을 수 있으므로, 그 지점에서 대기하는 차량이 있거나 다른 지점에서 그 지점으로 이동하는 차량이 있으면 그 지점으로 이동할 수 없다.

차량이 많아지면서 교통체증이 심해지고 있다. 귀경길 도로 위에서 몇 시간째 갇혀 있는 정현이는 차량들이 최적으로 움직일 때, 모든 차량이 도로망을 빠져나가는 데 몇 분이 걸리는지 궁금해졌다.

도로망의 구성과 00분에 차량들이 있는 위치가 주어졌을 때, 정현이의 궁금증을 해결하는 프로그램을 작성하시오.

입력

첫째 줄에 도로망의 지점 수 NN이 주어진다. (1≤N≤200 0001 \le N \le 200\,000)

둘째 줄부터 N−1N-1개의 줄에 걸쳐 도로의 두 지점 uiu_i, viv_i가 한 줄에 하나씩 주어진다. 이는 uiu_i번 지점과 viv_i번 지점을 잇는 도로가 있다는 뜻이다. (1≤ui≤N1 \le u_i \le N, 1≤vi≤N1 \le v_i \le N, ui≠viu_i \neq v_i)

N+1N+1번째 줄에는 11번 지점부터 NN번 지점까지 차량이 있는지를 나타내는 정수 CiC_i가 공백으로 구분되어 주어진다. ii번 지점에 차량이 있으면 CiC_i는 11이고, 없으면 00이다.

도로망에 차량이 적어도 한 대 있음이 보장된다.

출력

첫째 줄에 차량들이 최적으로 행동할 때, 모든 차량이 도로망을 빠져나가는 데 걸리는 시간을 출력한다.

예제3

  1. 예제 1

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

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

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