만드는 중입니다

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

통행료 인상하기

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

요약
가중치 그래프의 유일한 최소 신장 트리 간선을 모두 새 최소 신장 트리에서 제외하려고 합니다. 간선 가격을 올리는 최소 합을 구하고, 불가능하면 -1을 출력합니다.
난이도

보통10점 중 7점

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

문제

ICPC 왕국은 11번부터 NN번까지 번호가 붙은 NN개의 도시로 이루어진 큰 나라입니다. ICPC 왕국의 매력은 아름다운 경치에 있습니다. 국왕은 그 경치를 알리기 위해 관광객이 즐길 수 있는 경치 좋은 곳 근처에 11번부터 MM번까지 번호가 붙은 MM개의 유료 도로를 만들기로 했습니다. 도로 ii는 도시 UiU_i와 ViV_i를 양방향으로 잇고, 이용하려면 WiW_i를 내야 합니다. 이 도로들로 어느 도시에서든 다른 모든 도시로 갈 수 있습니다.

유료 도로는 이미 건설되어 이용할 수 있지만 아직 관광객을 끌지 못합니다. 국왕은 홍보책을 내놓았습니다. 이용하고 싶은 도로의 요금을 미리 내 두면, ICPC 왕국 밖으로 나가지 않는 한 그 도로를 여러 번 이용할 수 있습니다.

이 방식으로 관광객은 모였지만 이상한 현상이 나타났습니다. 모든 관광객은 어느 도시에서든 다른 모든 도시로 갈 수 있게 해 주는 도로 집합 중 총 요금이 가장 적은 집합에 대해서만 돈을 냅니다. 현재 요금에서는 이런 도로 집합이 하나로 정해집니다. 이 이상한 행동 때문에 관광객은 왕국의 경치를 충분히 보지 못합니다.

더 많은 경치를 보여 주기 위해 국왕은 일부 도로의 요금을 올리기로 했습니다. 요금을 올리기 전에 이상한 행동에서 쓰이던 도로 ii는, 요금을 올린 뒤에는 그 행동에서 반드시 쓰이지 않도록 해야 합니다. 국왕은 전체 도로의 요금 인상액 합이 가능한 한 작기를 원합니다.

국왕의 계획을 달성하기 위한 최소 총 인상액을 구하고, 계획이 불가능하면 그 사실을 알려 주세요.

입력

첫 줄에 도시 수 NN과 도로 수 MM이 주어집니다 (2≤N≤100 0002 \le N \le 100\,000; N−1≤M≤200 000N - 1 \le M \le 200\,000). 이어지는 MM개의 줄에는 정수 세 개 UiU_i, ViV_i, WiW_i가 주어집니다 (1≤Ui<Vi≤N1 \le U_i < V_i \le N; 1≤Wi≤1091 \le W_i \le 10^9). 이는 도로 ii가 도시 UiU_i와 ViV_i를 요금 WiW_i로 잇는다는 뜻입니다. 요금을 올리기 전에는 어느 두 도시 사이든 총 요금이 최소가 되도록 이동하게 하는 도로 집합이 하나로 정해집니다.

출력

국왕의 계획을 달성할 수 있으면 최소 총 인상액을 정수 하나로 출력합니다. 그렇지 않으면 -1을 한 줄에 출력합니다.

예제3

  1. 예제 1

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

    입력
    3 4
    1 2 3
    2 3 4
    1 3 5
    1 3 10
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    5 10
    1 2 14
    1 3 14
    1 4 9
    1 5 15
    2 3 8
    2 3 10
    2 4 13
    3 4 8
    4 5 10
    4 5 15
    
    예상 출력
    21