만드는 중입니다

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

TOLLS

면접 대비

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

요약
각 질의 [l, r]에 대해 경로에서 가장 큰 통행료가 l 이상 r 이하인 모든 도시 쌍의 비용 합을 구합니다.
난이도

보통10점 중 5점

유형
유니온 파인드, 정렬, 누적 합
정답자
아직 제출이 없습니다

문제

Ivo 나라에는 NN개의 도시가 있고, 이 도시들은 N−1N-1개의 양방향 고속도로로 연결되어 있다. 고속도로를 따라 어떤 도시에서든 다른 모든 도시로 갈 수 있다. 고속도로 ii는 서로 다른 두 도시 uiu_i, viv_i를 잇고, 통행료 wiw_i를 받는다 (1≤i≤N−11 \leq i \leq N-1).

여행은 서로 다른 두 도시 uu, vv 사이의 단순 경로(같은 도시를 두 번 지나지 않는 경로)다. 여행의 비용은 경로 위 통행료의 합이 아니다. 경로에 있는 고속도로 통행료 중 가장 큰 값 하나만 지불한다.

정부가 QQ개의 질문을 한다. jj번째 질문(1≤j≤Q1 \leq j \leq Q)은 비용이 [lj,rj][l_j, r_j] 구간에 있는 모든 여행의 비용 합을 구하는 것이다. 첫 번째 질문은 서로 다른 모든 도시 쌍을 대상으로 하므로 l1=1l_1=1, r1=max⁡1≤i≤N−1{wi}r_1=\max_{1 \leq i \leq N-1}\{w_i\}이다.

입력

첫 줄에 도시의 수 NN과 질문의 수 QQ가 양의 정수로 주어진다. 이어서 N−1N-1개의 줄에 도시 uiu_i, viv_i를 잇고 통행료가 wiw_i인 고속도로를 나타내는 양의 정수 uiu_i, viv_i, wiw_i가 주어진다. 마지막 QQ개의 줄에는 질문을 나타내는 양의 정수 ljl_j, rjr_j가 주어진다.

출력

각 질문에 대해, 입력 순서대로 비용이 [lj,rj][l_j, r_j] 구간에 있는 모든 여행의 비용 합을 한 줄에 하나씩 출력한다.

제한

  • 1≤N,Q≤1051 \leq N, Q \leq 10^5
  • 1≤ui,vi≤N−11 \leq u_i, v_i \leq N-1
  • 1≤wi≤1091 \leq w_i \leq 10^9
  • 1≤lj≤rj≤1091 \leq l_j \leq r_j \leq 10^9

힌트

아래 그림은 도시와 고속도로를 나타낸다.

  • 비용이 11인 여행은 33개다: 1−21-2, 1−41-4, 2−42-4.
  • 비용이 22인 여행은 44개다: 1−51-5, 2−52-5, 3−63-6, 4−54-5.
  • 비용이 33인 여행은 88개다: 1−31-3, 1−61-6, 2−32-3, 2−62-6, 3−43-4, 3−53-5, 4−64-6, 5−65-6.
  • 비용이 44인 여행은 66개다: 1−71-7, 2−72-7, 3−73-7, 4−74-7, 5−75-7, 6−76-7.
  • 비용이 55인 여행은 00개다.

첫 번째 질문의 답은 3×1+4×2+8×3+6×4=593 \times 1+4 \times 2+8 \times 3+6 \times 4=59이다. 두 번째 질문의 답은 4×2+8×3=324 \times 2+8 \times 3=32이다. 세 번째 질문의 답은 4×2+8×3+6×4=564 \times 2+8 \times 3+6 \times 4=56이다. 네 번째 질문의 답은 3×1+4×2+8×3=353 \times 1+4 \times 2+8 \times 3=35이다. 다섯 번째 질문의 답은 4×2+8×3+6×4+0×5=564 \times 2+8 \times 3+6 \times 4+0 \times 5=56이다.

예제1

  1. 예제 1

    입력
    7 5
    1 2 1
    3 1 3
    1 4 1
    4 5 2
    5 7 4
    3 6 2
    1 4
    2 3
    2 4
    1 3
    2 5
    
    예상 출력
    59
    32
    56
    35
    56