비용
시간 제한1초메모리 제한128 MB
가중치 그래프에서 두 정점이 분리될 때까지 가장 작은 가중치 간선을 반복 제거하는 과정의 비용을 모든 정점 쌍에 대해 합산해 1e9로 나눈 나머지를 구하는 문제입니다.
문제
간선에 서로 다른 양의 가중치가 붙은 무방향 그래프가 있다. 정점은 1부터 N까지 번호가 붙어 있다.
서로 다른 두 정점 u, v에 대해 Cost(u, v)를 다음 과정에서 제거되는 간선 가중치의 합으로 정의한다.
- 현재 그래프에서
u와v사이에 경로가 있으면, 현재 그래프에 남아 있는 간선 중 가중치가 가장 작은 간선을 제거한다. u와v사이에 경로가 없어질 때까지 1번 과정을 반복한다.
다음은 정점이 6개인 그래프의 한 모습이다.

정점 2와 6에 대해 위 과정을 수행하면 간선 (2, 3), (4, 5), (3, 5), (3, 4), (2, 6)이 차례로 제거된다. 간선 (2, 6)이 제거된 뒤에는 두 정점 사이의 경로가 없어지므로 과정이 끝난다. 따라서 Cost(2, 6) = 2 + 3 + 4 + 5 + 6 = 20이다.
그래프가 주어졌을 때, u < v인 모든 정점 쌍 (u, v)에 대한 Cost(u, v)의 총합을 구하시오. 총합이 10^9 이상이면 10^9로 나눈 나머지를 출력한다.
입력
첫째 줄에 정점의 수 N (1 < N <= 100,000)과 간선의 수 M (1 <= M <= 100,000)이 공백으로 구분되어 주어진다.
다음 M개의 줄에는 간선 하나를 나타내는 세 양의 정수 x, y, w가 공백으로 구분되어 주어진다. 이는 정점 x와 y를 잇는 간선의 가중치가 w라는 뜻이다. 모든 간선의 가중치는 서로 다르며, 1 <= w <= 100,000이다.
출력
u < v인 모든 정점 쌍 (u, v)에 대한 Cost(u, v)의 총합을 첫째 줄에 출력한다. 총합이 10^9 이상이면 10^9로 나눈 나머지를 출력한다.