만드는 중입니다

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

운송

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

요약
트리에서 출발 도시 A의 주유소부터 연료를 채우며 경로를 따라 B까지 갈 수 있는 순서쌍 (A, B)의 개수를 구합니다.
난이도

어려움10점 중 8점

유형
분할 정복, 트리, 정렬
정답자
아직 제출이 없습니다

문제

한 나라의 교통망은 NN개의 도시(11부터 NN까지 번호가 매겨짐)와 모든 도시를 연결하는 N−1N-1개의 도로로 이루어진다. 각 도로의 길이는 킬로미터 단위로 주어지며, 각 도시에는 일정량의 연료가 있는 주유소가 하나씩 있다.

몇 년 전 연료 부족 사태가 나라를 덮친 뒤, 주요 운송 기관은 도시 사이에서 화물을 운송할 수 있는 능력을 조사하기로 했다. 트럭은 1킬로미터를 갈 때마다 연료 1단위를 소비한다. 인접한 두 도시 사이의 이동은, 트럭이 한 도시를 출발할 때 연료 탱크에 남아 있는 양이 두 도시 사이 거리 이상이면 가능하다. 트럭이 도시에 머무를 때마다 탱크를 그 도시 주유소의 연료량 이하의 양만큼 채울 수 있다. 조사 결과는 트럭이 도시 AA에서 도시 BB로 이동할 수 있는 순서쌍 (A,B)(A, B)의 개수이다. 트럭은 빈 탱크로 출발하므로, 여행을 시작할 때 도시 AA의 주유소에서 연료를 채워야 한다.

조사에는 다음 두 가정이 적용된다.

  • 연료 탱크의 용량은 무제한이다.
  • 도시 AA에서 출발한 트럭은 도시 BB로 곧바로 간다. 즉, 같은 도시를 두 번 이상 방문하지 않는다.

입력

첫 줄에 도시의 수 NN(1≤N≤1000001 \le N \le 100000)이 주어진다.

둘째 줄에는 도시 ii의 주유소에 있는 연료량 AiA_i(1≤Ai≤1091 \le A_i \le 10^9)가 NN개의 정수로 주어진다.

이어지는 N−1N-1개의 줄에는 도시 UU와 VV(1≤U,V≤N1 \le U, V \le N, U≠VU \ne V)를 잇는 길이 WW킬로미터(1≤W≤1091 \le W \le 10^9)의 도로가 세 정수 UU, VV, WW로 주어진다.

출력

트럭이 도시 AA에서 도시 BB로 이동할 수 있는 순서쌍 (A,B)(A, B)의 개수를 출력한다.

예제3

  1. 예제 1

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

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

    입력
    8
    5 2 4 7 8 3 3 6
    6 5 5
    1 4 5
    3 1 2
    8 6 5
    1 2 3
    4 5 3
    4 7 5
    
    예상 출력
    29