간선 끊어가기

가중 무방향 그래프에서 간선을 하나씩 지우다가 s와 t가 분리되는 순간 멈출 때, 그때까지 지운 간선 무게 합의 최댓값을 구한다.

어려움8그래프최소 신장 트리그리디정렬아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

정점 nn개와 간선 mm개로 이루어진 무방향 그래프가 있다. 간선마다 가중치가 있다. 간선 목록에 있는 간선을 하나씩 골라 그래프에서 지워 나가는데, 지우는 순서는 마음대로 정한다.

두 정점 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는 항상 연결되어 있다.

출력

sstt가 비연결이 되는 시점까지 지운 간선의 가중치 합의 최댓값을 한 줄에 출력한다.