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

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

방탈출

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

요약
방마다 탈출구 설치 비용이 주어지고 M개의 워프 후보와 각 비용이 주어질 때, 모든 방이 외부로 나갈 수 있도록 워프와 탈출구를 골라 총 설치 시간을 최소화한다.
난이도

보통10점 중 6점

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

문제

원빈이는 친구들과 함께 방탈출 카페에 갔다. 방탈출 카페에는 11번부터 NN번까지 총 NN개의 방이 있고, 각 방에는 친구들이 한 명씩 들어가 있다. 모든 방은 외부로부터 완전히 독립되어 있다.

방에서 탈출하지 못하는 친구들이 답답했던 원빈이는 모든 친구들이 출구로 탈출할 수 있도록 워프와 비상탈출구를 설치하려고 한다. 워프는 최대 MM개까지 설치할 수 있는데, ii번째 워프는 설치하는 데 cic_i의 시간이 걸리고, 워프를 설치하면 aia_i번 방과 bib_i번 방 사이를 이동할 수 있다. 또한 각 방에는 출구로 바로 연결되는 비상탈출구를 설치할 수 있는데, ii번 방에 비상탈출구를 설치하는 데 걸리는 시간은 tit_i이다.

안타깝게도 원빈이는 머리가 나빠 워프나 비상탈출구의 설치 작업을 동시에 여럿 진행할 수 없다. 즉 한 작업이 끝나고 나서야 다음 작업을 이어서 시작할 수 있다.

원빈이를 도와 모든 친구들이 출구로 탈출할 수 있도록 워프와 비상탈출구를 설치하는 데 걸리는 최소 시간을 구해보자.

입력

첫 번째 줄에는 방의 개수 NN과 설치할 수 있는 워프의 개수 MM이 주어진다. (2≤N≤200 0002 \le N \le 200\,000, 1≤M≤100 0001 \le M \le 100\,000)

다음 MM개의 줄에는 워프의 정보를 나타내는 세 정수 aia_i, bib_i, cic_i가 공백으로 구분되어 주어지는데, 이는 aia_i번 방과 bib_i번 방 사이를 잇는 워프를 설치하는 데 걸리는 시간이 cic_i라는 의미이다. 같은 두 개의 방을 잇는 워프가 여러 개 존재할 수 있다. (1≤ai,bi≤N1 \le a_i, b_i \le N, 1≤ci≤1041 \le c_i \le 10^4, ai≠bia_i \ne b_i)

마지막 줄에는 NN개의 정수 t1t_1, ..., tnt_n이 주어지는데, tit_i는 ii번째 방에 비상탈출구를 설치하는 데 드는 시간을 의미한다. (1≤ti≤1041 \le t_i \le 10^4)

출력

모든 친구들이 출구로 탈출할 수 있도록 워프와 비상탈출구를 설치하는 데 걸리는 최소 시간을 출력한다.

예제2

  1. 예제 1

    입력
    3 3
    1 2 2
    2 3 2
    3 1 2
    3 3 3
    
    예상 출력
    7
    
  2. 예제 2

    입력
    3 1
    1 2 2
    3 3 3
    
    예상 출력
    8