만드는 중입니다

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

다람쥐

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

요약
가중치가 있는 그래프에서 최소 신장 트리 비용을 구하고, 질의마다 간선 하나의 가중치를 바꿨을 때의 새 최소 비용을 계산합니다.
난이도

보통10점 중 6점

유형
최소 신장 트리, 트리, 그래프
정답자
아직 제출이 없습니다

문제

스웨덴 남부의 도시 룬드에는 보타니스카 트레드고르덴 공원이 있고, 이 공원에는 나무가 nn그루 있다. 다람쥐들은 나무 mm쌍 사이에 오솔길을 표시해 두었다.

가을이 오면 낙엽이 오솔길을 덮는다. 그러면 다람쥐들은 돌멩이로 모든 오솔길에 다시 표시해야 한다. 다람쥐들은 오솔길마다 다시 표시하는 데 드는 돌멩이 수를 알고 있다. ii번째 오솔길은 aia_i번 나무와 bib_i번 나무를 잇고, 표시하는 데 cic_i개의 돌멩이가 필요하다.

올해 다람쥐들은 오솔길을 전부 표시하지 않고 n−1n - 1개만 표시하기로 했다. 표시한 오솔길은 모든 나무를 연결해야 한다. 즉 어떤 두 나무 사이에도 표시된 오솔길을 따라 이어지는 길이 있어야 한다. 또한 돌멩이의 총합이 가장 적도록 오솔길을 고른다.

계산을 마치기 전에 qq마리의 다람쥐가 의견을 냈다. ii번째 다람쥐는 오솔길 xix_i를 표시하려면 cic_i개가 아니라 did_i개의 돌멩이가 필요하다고 주장했다.

ii번째 다람쥐의 주장만 참이고 나머지 다람쥐의 주장은 모두 거짓이라고 하자. 이때 새로운 계획에서 필요한 돌멩이의 총합은 얼마인가?

입력

첫 줄에 자연수 nn과 mm이 주어진다(2≤n≤100 0002 \le n \le 100\,000, 1≤m≤min⁡(200 000,n⋅(n−1)2)1 \le m \le \min(200\,000, \frac{n \cdot (n-1)}{2})). 각각 나무의 수와 나무 사이 오솔길의 수이다.

이어서 mm개의 줄에 자연수 aia_i, bib_i, cic_i가 주어진다(1≤ai,bi≤n1 \le a_i, b_i \le n, ai≠bia_i \ne b_i, 1≤ci≤1 0001 \le c_i \le 1\,000). ii번째 오솔길이 나무 aia_i와 bib_i를 잇고, 표시하는 데 cic_i개의 돌멩이가 필요하다는 뜻이다.

다음 줄에는 정수 qq가 주어진다(1≤q≤100 0001 \le q \le 100\,000). 확신하지 못하는 다람쥐의 수이다.

이어서 qq개의 줄에 자연수 xix_i와 did_i가 주어진다(1≤xi≤m1 \le x_i \le m, 1≤di≤1 0001 \le d_i \le 1\,000). ii번째 다람쥐 주장에 나오는 수이며, xix_i는 입력에서 오솔길의 번호이다.

입력에서 모든 나무는 연결되어 있고, 두 나무 사이에 오솔길은 많아야 하나뿐이다.

출력

nn개의 줄을 출력한다. 첫 줄에는 다람쥐들의 주장을 고려하기 전에 필요한 돌멩이의 수를 출력한다. i+1i + 1번째 줄에는 ii번째 다람쥐의 주장만 참일 때 필요한 돌멩이의 수를 출력한다.

힌트

두 번째 예제에 대한 설명이다. 그림은 오솔길과 각 오솔길에 필요한 돌멩이의 수를 보여준다. 실선으로 그린 오솔길은 돌멩이로 표시하는 오솔길이고, 점선으로 그린 오솔길은 표시하지 않는 오솔길이다. ii번째 다람쥐가 의심하는 오솔길은 빨간색으로 표시했다. 그림은 예제의 질의 순서대로 나열되어 있다.

예제2

  1. 예제 1

    입력
    3 3
    2 1 674
    3 2 686
    3 1 712
    3
    1 185
    2 800
    3 850
    
    예상 출력
    1360
    871
    1386
    1360
    
  2. 예제 2

    입력
    5 8
    2 1 636
    3 1 650
    4 1 505
    5 2 711
    2 3 556
    3 4 434
    5 1 469
    5 3 654
    4
    8 264
    2 884
    4 273
    8 702
    
    예상 출력
    1964
    1723
    1964
    1681
    1964