아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

본선 회장 (Finals)

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

요약
K개 도시를 결승 개최지로 정해 모든 참가자가 그중 한 곳에 도달하도록 하되, 같은 도로를 함께 지나는 참가자들이 요금을 나눌 수 있다는 점을 이용해 총 통행료를 최소화한다.
난이도

어려움10점 중 8점

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

문제

JOI 나라에는 NN개의 도시가 있고, 11부터 NN까지 번호가 붙어 있다. 또 MM개의 도로가 있다. 모든 도로는 서로 다른 두 도시를 잇고, 양방향으로 통행할 수 있다. JOI 나라의 임의의 두 도시는 도로를 따라 한쪽에서 다른 쪽으로 도달할 수 있다. JOI 나라의 도로는 모두 유료 도로이고, 도로마다 통행료가 정해져 있다.

JOI 나라에서도 정보 올림피아드가 열린다. JOI 나라 정보 올림피아드 본선에는 각 도시의 대표 선수가 출전한다. 본선을 어느 도시에서 열지 결정하고, 선수를 그 도시에 모으는 데 드는 금액을 미리 견적해 두어야 한다. 본선은 KK개의 도시에서 열리고, 본선을 열 때에는 모든 선수를 그 중 어느 한 도시로 이동시켜야 한다. 한 도시에 모이는 선수의 수에는 제한이 없다.

본선을 여는 도시에 선수를 모을 때에는 도로를 이용한다. 통행료가 cc인 도로는 한 번에 몇 명이 통행해도 요금은 cc이다. 따라서 선수를 이동시키는 순서를 잘 정해서 여러 선수를 한 번에 통행시키면 요금을 절약할 수 있다.

본선을 여는 도시를 정하고, 선수를 본선 회장에 모을 때 드는 통행료의 합을 최소화하려고 한다.

NN, MM, KK와 모든 도로의 정보가 주어졌을 때, 선수를 본선 회장에 모을 때 드는 통행료의 합의 최솟값을 계산하는 프로그램을 작성하시오.

입력

표준 입력에서 다음 입력을 읽는다.

  • 첫째 줄에는 정수 NN, MM, KK가 공백을 구분으로 쓰여 있다.
  • 이어지는 MM개의 줄에는 한 줄에 하나의 도로에 대한 정보가 쓰여 있다. 이 줄들 중 ii번째 줄은 도로 ii에 대한 정보이고, 정수 AiA_i, BiB_i, CiC_i가 공백을 구분으로 쓰여 있다.

출력

표준 출력에 선수를 본선 회장에 모을 때 드는 금액의 최솟값을 나타내는 정수 하나를 출력하시오.

제한

  • 1≤N≤100,0001 \le N \le 100{,}000 (도시의 수)
  • 1≤M≤100,0001 \le M \le 100{,}000 (도로의 수)
  • 1≤K≤N1 \le K \le N (본선을 여는 도시의 개수)
  • 1≤Ai<Bi≤N1 \le A_i < B_i \le N (도로 ii가 잇는 두 도시)
  • 1≤Ci≤1001 \le C_i \le 100 (도로 ii의 통행료)

예제2

  1. 예제 1

    입력
    4 3 1
    1 2 2
    2 3 9
    2 4 5
    
    예상 출력
    16
    
  2. 예제 2

    입력
    5 6 2
    1 2 5
    1 3 3
    2 3 4
    2 5 7
    3 4 6
    4 5 5
    
    예상 출력
    12