간선 끊어가기 2

가중 무방향 그래프와 두 정점 s, t가 주어질 때, s와 t가 분리되도록 삭제할 간선들의 총 가중치 최솟값을 구한다.

보통6최소 신장 트리그래프그리디유니온 파인드면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

정점 nn개와 간선 mm개로 이루어진 무방향 그래프가 주어진다. 각 간선에는 가중치가 있다.

간선 목록에 있는 간선을 하나씩 골라 그래프에서 지워 나간다. 두 정점 sstt가 비연결이 되는 순간 지우기를 멈춘다. 비연결이란 남은 간선만으로는 한 정점에서 다른 정점으로 갈 수 없는 상태를 말한다.

지우는 순서는 마음대로 정할 수 있다. sstt가 비연결이 될 때까지 지운 간선의 가중치 합이 최소가 되도록 순서를 정했을 때, 그 합의 최솟값을 구하라. 처음부터 sstt가 비연결이면 간선을 하나도 지우지 않아도 되므로 답은 0이다.

입력

첫째 줄에 정점의 개수 nn과 간선의 개수 mm이 주어진다. (2n5002 \le n \le 500, 1m100001 \le m \le 10000)

다음 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가 비연결이 되는 시점까지 지운 간선의 가중치 합의 최솟값을 한 줄에 출력한다.