한국의 철도

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

요약
출발역과 도착역의 쌍을 상행과 하행으로 분류할 때, 1번 역으로부터의 거리와 인구수를 기준으로 각 방향의 운행 정보 개수를 구한다.
난이도

어려움10점 중 8점

유형
트리, DFS, 정렬, 누적 합
정답자
아직 제출이 없습니다

문제

철도를 좋아하는 가희가 사는 한국에는, 11번 도시부터 nn번 도시까지 nn개의 도시가 있으며, ii번 도시에는 ii번 역만 있습니다. 열차들은 이 역들에서 운행을 시작하거나 종료할 수 있습니다. 가희는 열차의 운행 방향이 상행과 하행으로 나뉜다는 사실을 알게 되었습니다. 운행을 시작하는 역이 aa번 도시에 있고, 운행을 종료하는 역이 bb번 도시에 있다고 할 때, 다음 두 조건 중 하나 이상을 만족하면 상행입니다.

  • 11번 도시에 있는 역부터 aa번 도시에 있는 역까지의 거리가 11번 도시에 있는 역부터 bb번 도시에 있는 역까지의 거리보다 더 멉니다.
  • 11번 도시에 있는 역부터 aa번 도시에 있는 역까지의 거리와 11번 도시에 있는 역부터 bb번 도시에 있는 역까지의 거리가 같습니다. 그리고 bb번 역이 있는 도시의 인구수보다 aa번 역이 있는 도시의 인구수가 더 많습니다.

이때, aa번 도시에 있는 역부터 bb번 도시에 있는 역까지 거리는 aa번 도시에 있는 역에서부터 bb번 도시에 있는 역까지 이동하는 데 이용한 노선 거리의 합의 최소값 입니다. 또한, 상행의 반대 방향은 하행이며 하행의 반대 방향은 상행입니다. 이 방식으로 상행, 하행을 결정할 수 없다면, 상행도 하행도 아닙니다.

운행 정보는 다음과 같이 정의합니다.

  • ss번 역에서 운행을 시작하여, ee번 역에서 운행을 종료합니다.
  • s≠es ≠ e

운행을 시작하는 역과 운행을 종료하는 역 중 하나라도 다르다면 다른 운행 정보로 셉니다. 상행으로 운행되는 서로 다른 운행 정보의 개수와, 하행으로 운행되는 서로 다른 운행 정보의 개수를 출력해 주세요.

입력

첫 번째 줄에 도시의 수 nn이 주어집니다.

두 번째 줄부터 n−1n-1개의 줄에 걸쳐 노선 정보 ss, ee, dd가 공백으로 구분되어 주어집니다. 이는 ss번 역과 ee번 역 사이에 거리가 dd인 양방향으로 연결된 노선이 있음을 의미합니다.

n+1n+1번째 줄에 도시의 인구 수 p_1,p_2,⋯ ,p_np\_1, p\_2, \cdots, p\_n이 공백으로 구분되어 주어집니다.

출력

첫 번째 줄에 상행으로 운행되는 서로 다른 운행 정보의 개수와 하행으로 운행되는 서로 다른 운행 정보의 개수를 공백으로 구분하여 출력해 주세요.

제한

  • 2≤n≤4×1052 \leq n \leq 4 \times 10^{5}
  • 1≤s_i,e_i≤n1 \leq s\_i, e\_i \leq n
  • 1≤d_i,p_i≤1091 \leq d\_i, p\_i \leq 10^{9}
  • 입력으로 주어지는 모든 수는 정수입니다.
  • 두 역을 연결하는 중복된 노선이 존재하지 않으며, 임의의 서로 다른 두 역은 하나, 혹은 둘 이상의 노선을 이용해서 가는 방법이 존재합니다.
  • 모든 노선은 기점과 종점을 제외한 어떠한 역도 경유하지 않습니다.

예제3

  1. 예제 1

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

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

    입력
    5
    1 2 1
    2 3 1
    3 4 1
    4 5 1
    1 2 3 4 5
    
    예상 출력
    10 10