프로그램 명: koi_cost
제한시간: 1 초

간선(혹은 에지)에 가중치가 주어진 그래프가 있다.

정점들의 수가 N 일 때, 모든 정점은 1부터 N 까지 번호가 붙여져 있고, 모든 간선들의 가중치는 서로 다르다. 이 때 서로 다른 두 정점 u,v 에 대하여, cost(u,v)는 다음에서 제거되는 간선들의 가중치 합이다: u와 v 사이의 경로가 있으면 이 그래프의 최소 가중치 간선을 그래프에서 제거한다. 이 과정을 u 와 v 사이의 경로가 없을 때까지 반복한다.

예를 들어, 6개의 정점으로 이루어진 다음 그래프를 고려해 보자.

두 정점 2, 6에 대하여, cost(2,6) 을 구하는 과정에서 제거되는 간선들을 차례대로 나열하면 다음과 같다: (2, 3), (4, 5), (3, 5), (3, 4), (2, 6).

이들 간선들 중 (2, 6)이 제거될 때, 두 정점 2와 6사이의 경로가 없으므로 간선 제거가 끝나게 된다. 따라서 cost(2,6) = 2 + 3 + 4 + 5 + 6 = 20 이다.

간선에 가중치가 있는 그래프가 주어질 때, u < v인 모든 두 정점 u,v 에 대한 cost(u,v) 들의 총 합을 구하는 프로그램을 작성하시오. 총 합이 10^9보다 크면 이를 10^9으로 나눈 나머지를 출력한다.

프로그램의 실행시간은 1초를 넘을 수 없다. 부분점수는 없다.

입력

출력

u < v 인 모든 두 정점 u,v 에 대한 cost(u,v)들의 총 합을 첫째 줄에 출력한다. 단, 총 합이 10^9보다 크면 이를 10^9으로 나눈 나머지를 출력한다.

입출력 예

입력

6 7
1 2 10
2 3 2
4 3 5
6 3 15
3 5 4
4 5 3
2 6 6

출력 

256
출처:koi 2011 지역본선 증등 5 고등 4
대회 풀이
[질/답] [제출 현황] [푼 후(3)]
[ 채 점 ] [홈으로]  [뒤 로]