만드는 중입니다

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

달나라에 사는 토끼와 우주에서 떨어지는 떡

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

요약
달나라 그래프에서 떡이 떨어질 때마다 도달할 수 있는 토끼가 최단 경로로 이동하고, 각 토끼가 뛰는 총 횟수를 구합니다.
난이도

어려움10점 중 8점

유형
트리, 그래프, 최단 경로, DFS
정답자
아직 제출이 없습니다

문제

달나라에는 NN마리의 토끼가 살고 있다. 달나라는 NN개의 정점과 NN개의 방향이 있는 간선으로 구성된 그래프이다. 처음에는 정점 ii에 ii번 토끼가 있다. 정점 ii에서 다른 정점을 거치지 않고 직접 이동할 수 있는 정점 xix_i는 하나로 정해져 있다. 정점 ii에서 정점 xix_i로 향하는 간선의 길이는 did_i이다.

달나라의 토끼는 떡을 무척 좋아한다. 평소에는 자신이 있는 정점에서 움직이지 않는 토끼도, 우주에서 떡이 떨어질 때만은 매우 열심히 움직인다. 달나라에는 MM개의 떡이 순서대로 떨어진다. ii번째 떡은 정점 viv_i에 떨어진다. 모든 토끼가 떡이 떨어진 정점 viv_i로 가고 싶어 하지만, 간선에는 방향이 있으므로 정점 viv_i에 도달할 수 있는 토끼만 정점 viv_i로 이동한다. 정점 viv_i에 도달할 수 없는 토끼는 제자리에 머문다.

토끼는 떡이 떨어진 정점에 최대한 빨리 도착하기 위해 항상 최단 경로를 따라 이동한다. 최단 경로의 길이가 같더라도, 경로를 이동하는 데 필요한 점프 횟수는 토끼마다 다를 수 있다. ii번 토끼가 길이 11만큼 이동하려면 rir_i번의 점프가 필요하다. ii번 토끼가 길이 ll인 경로를 따라 이동하면 rilr_i l번 점프한다.

우주에서 떡이 떨어지고 토끼가 이동하는 과정이 반복된다. 떡이 떨어진 정점으로 이동을 마친 토끼는 도착한 정점에서 다음 떡이 떨어질 때까지 기다린다. 떡이 떨어진 정점에 가장 늦게 도착하는 토끼가 이동을 끝낸 뒤에 다음 떡이 떨어진다. 더 이상 떨어질 떡이 없으면 과정이 종료된다.

첫 번째 떡이 떨어진 시점부터 마지막 떡이 떨어지고 이동이 모두 끝난 시점까지 ii번 토끼가 점프한 횟수를 aia_i라고 한다. a1,a2,⋯ ,aNa_1, a_2, \cdots, a_N을 구하시오.

입력

첫 번째 줄에 NN이 주어진다. (2≤N≤2×105)(2\le N\le 2\times 10^5)

다음 NN개의 줄에 xix_i와 did_i가 공백으로 구분되어 주어진다. (1≤xi≤N;(1\le x_i\le N; i≠xi;i\neq x_i; 1≤di≤105)1\le d_i\le 10^5)

N+2N+2번째 줄에 r1,r2,⋯ ,rNr_1, r_2, \cdots, r_N이 공백으로 구분되어 주어진다. (1≤ri≤103)(1\le r_i\le 10^3)

N+3N+3번째 줄에 MM이 주어진다. (1≤M≤2×105)(1\le M\le 2\times 10^5)

N+4N+4번째 줄에 v1,v2,⋯ ,vMv_1, v_2, \cdots, v_M이 공백으로 구분되어 주어진다. (1≤vi≤N)(1\le v_i\le N)

입력으로 주어지는 모든 수는 정수이다.

출력

첫 번째 줄부터 NN번째 줄까지 ii번째 줄에 aia_i를 출력한다.

예제1

  1. 예제 1

    입력
    7
    2 7
    3 4
    4 2
    5 6
    3 1
    7 5
    6 3
    2 1 3 1 3 2 1
    5
    2 3 1 5 6
    
    예상 출력
    38
    12
    24
    15
    27
    0
    3