만드는 중입니다

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

Girlianda

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

요약
N개의 전구가 트리 모양으로 연결되어 있고 초기 켜짐 상태가 주어질 때, 모든 전구가 꺼지는 가장 이른 초를 구합니다. 영원히 꺼지지 않으면 -1을 출력합니다.
난이도

보통10점 중 6점

유형
트리, DFS, 시뮬레이션
정답자
아직 제출이 없습니다

문제

Linas는 특이한 girlianda(장식용 전구 줄)를 선물로 받았다. 이 girlianda는 NN개의 전구가 서로 연결되어 있다. 모든 전구는 하나의 연결된 네트워크를 이루며, 네트워크에는 사이클이 없다. 직접 연결된 두 전구를 이웃이라고 한다.

전원을 연결한 시점(t=0t = 0)에는 일부 전구가 켜져 있고 나머지는 꺼져 있다. 이후 매 초마다 켜진 전구의 구성이 바뀐다. 시각 tt에 각 전구는 다음 규칙으로 정해진다.

  • 시각 t−1t-1에 이웃 전구 중 꺼져 있던 전구가 하나 이상 있었다면, 전구는 꺼진다.
  • 그렇지 않으면 전구는 켜진다.

Linas는 전원을 연결한 뒤 몇 초가 지나야 girlianda의 모든 전구가 꺼지는지 알고 싶어 한다.

입력

첫째 줄에 전구의 개수 NN이 주어진다.

둘째 줄에는 N−1N-1개의 정수 pip_i(2≤i≤N2 \le i \le N, pi<ip_i < i)가 주어진다. pip_i는 ii번 전구가 pip_i번 전구와 연결되어 있다는 뜻이다.

셋째 줄에는 NN개의 정수 sis_i(1≤i≤N1 \le i \le N)가 주어진다. si=1s_i = 1이면 ii번 전구는 0초에 켜져 있고, si=0s_i = 0이면 꺼져 있다.

출력

모든 전구가 꺼지는 가장 이른 시각(초)을 한 정수로 출력한다. 그런 시각이 없으면 -1을 출력한다.

제한

2≤N≤5000002 \le N \le 500000

예제3

  1. 예제 1

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

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

    입력
    9
    1 2 2 4 4 3 3 2
    1 0 0 0 1 1 1 1 1
    
    예상 출력
    1