만드는 중입니다

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

여행사 운영하기

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

요약
가중치가 있는 트리에서 각 도시의 버스 이동 범위를 따라 도달할 수 있는 도시들의 최댓값과 최솟값 차이를 구합니다.
난이도

보통10점 중 7점

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

문제

당신은 성공적으로 여행사를 운영하는 CEO다. 새로운 나라에서 여행사를 확장하려고 하며, 이를 위해 첫 거점 도시를 정해야 한다.

이 나라에는 NN개의 도시가 있고, 도시 사이를 양방향으로 오갈 수 있는 N−1N-1개의 도로가 있다. 어느 도시에서 출발하든 도로를 따라 다른 모든 도시에 도착할 수 있다.

각 도시 ii에는 즐거움을 나타내는 수 cic_i가 있다. 이 값이 클수록 즐거운 도시다.

이 나라에는 특이한 제한이 있다. ii번 도시에서 출발하는 관광버스는 ii번 도시에서만 탈 수 있고, ii번 도시로부터 거리가 did_i 이하인 도시로만 이동할 수 있다.

ii번 도시의 관광버스는 그 도시에 있기만 하면 언제든지 탈 수 있다. 따라서 거점 도시에서 출발한 버스에 손님을 태워 다른 도시로 간 뒤, 그 도시의 관광버스로 갈아타면 더 멀리 갈 수 있다. 이렇게 버스를 여러 번 갈아타면 거점 도시의 버스만 이용할 때보다 훨씬 많은 도시에 갈 수 있다.

거점 도시를 정할 때 중요한 것은, 거점 도시에서 도달할 수 있는 도시들의 즐거움 최댓값과 최솟값의 차이다.

도시와 도로 정보가 주어졌을 때, 각 도시를 거점 도시로 정했을 때 도달할 수 있는 도시들의 즐거움 최댓값과 최솟값의 차이를 구하라.

입력

첫 번째 줄에 도시의 수 NN이 주어진다. (1≤N≤80001 \le N \le 8000)

두 번째 줄에 ii번째 도시의 즐거움 cic_i가 공백으로 구분되어 NN개 주어진다. (0≤ci≤10180 \le c_i \le 10^{18})

세 번째 줄에 ii번째 도시에서 출발한 관광버스가 갈 수 있는 거리 did_i가 공백으로 구분되어 NN개 주어진다. (0≤di≤10180 \le d_i \le 10^{18})

네 번째 줄부터 N−1N-1개의 줄에 걸쳐 도로 정보 uiu_i, viv_i, wiw_i가 공백으로 구분되어 주어진다. 도시 uiu_i와 도시 viv_i를 잇는 도로의 길이가 wiw_i라는 뜻이다. (1≤ui,vi≤N1 \le u_i, v_i \le N, ui≠viu_i \neq v_i, 1≤wi≤1091 \le w_i \le 10^9)

주어지는 모든 수는 정수다.

출력

ii번 도시를 거점으로 했을 때 도달할 수 있는 도시들의 즐거움 최댓값과 최솟값의 차이를 ii번째 줄에 출력한다. 총 NN줄을 출력한다.

예제2

  1. 예제 1

    입력
    5
    100 200 0 50 250
    8 52 100 116 23
    1 5 55
    2 5 45
    3 4 11
    1 4 15
    
    예상 출력
    0
    50
    250
    250
    0
    
  2. 예제 2

    입력
    7
    10 20 30 40 50 0 70
    1 2 3 4 5 6 7
    1 2 2
    1 3 3
    2 4 4
    2 5 5
    3 6 6
    3 7 7
    
    예상 출력
    0
    10
    20
    30
    40
    30
    60