간선 이어가기 2

가중치가 있는 간선 목록을 원하는 순서로 추가할 때, s와 t가 처음 연결되는 순간까지 추가한 간선 무게 합의 최솟값을 구한다.

보통5그래프정렬동적 계획법최소 신장 트리면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

정점 nn개와 간선 00개로 이루어진 무방향 그래프가 있다. 여기에 가중치가 붙은 간선 mm개가 적힌 간선 리스트가 주어진다. 리스트에 있는 간선을 원하는 순서로 하나씩 그래프에 추가하다가, 정점 ss와 정점 tt가 연결되는 순간 추가를 멈춘다. 두 정점이 간선을 따라 서로 오갈 수 있으면 연결된 것이다.

추가하는 순서를 마음대로 정할 수 있다. sstt가 연결되는 순간까지 추가한 간선의 가중치 합이 가장 작아지도록 순서를 정하고, 그 최솟값을 구하시오.

입력

첫째 줄에 정점의 개수 nn과 간선 리스트의 간선 수 mm이 주어진다. (2n50002 \le n \le 5000, 1m1000001 \le m \le 100000)

다음 mm개의 줄에는 세 정수 aa, bb, cc가 주어진다. 정점 aa와 정점 bb를 잇는 가중치 cc인 간선이 리스트에 있다는 뜻이다. (1a,bn1 \le a, b \le n, 1c1001 \le c \le 100, aba \ne b)

마지막 줄에 두 정점 sstt가 주어진다. (1s,tn1 \le s, t \le n, sts \ne t)

같은 두 정점을 잇는 간선이 리스트에 여러 개 있을 수 있다. 리스트의 간선을 모두 추가하면 그래프가 연결 그래프가 됨이 보장된다.

출력

sstt가 연결되는 순간까지 추가한 간선의 가중치 합의 최솟값을 첫째 줄에 출력한다.