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

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

가장 저렴한 순환 여행

시간 제한1초메모리 제한128 MB

요약
가중 무향 그래프에서 같은 간선을 두 번 쓰지 않는 비어 있지 않은 닫힌 보행의 최소 총 요금을 구하고, 없으면 BRAK를 출력한다.
난이도

보통10점 중 7점

유형
그래프, 최단 경로, 그리디, 완전 탐색
정답자
아직 제출이 없습니다

문제

바이트랜드를 여행하려는 바이트아사르가 있다. 어떤 두 도시들은 양방향 버스 노선으로 이어져 있다. 바이트아사르는 한 도시에서 출발해 같은 도시로 돌아오는 여행을 하되, 같은 버스 노선을 두 번 이상 타지 않으려 한다. 즉 두 도시를 잇는 노선을 어느 방향으로든 한 번 타고 나면 그 노선은 다시 타지 않는다. 이렇게 만든 닫힌 경로의 요금은 사용한 노선들의 요금을 모두 더한 값이다.

같은 노선을 두 번 이상 쓰지 않는, 비어 있지 않은 모든 닫힌 경로 중에서 요금 합이 가장 작은 값을 구하여라. 그런 경로가 하나도 없으면 없다고 답한다.

입력

첫째 줄에 도시의 수 nn과 양방향 버스 노선의 수 mm이 공백으로 구분되어 주어진다 (1≤n≤5001 \le n \le 500, 0≤m≤500000 \le m \le 50000).

다음 mm개의 줄에는 각각 세 정수 xix_i, yiy_i, cic_i가 주어진다 (1≤xi,yi≤n1 \le x_i, y_i \le n, xi≠yix_i \ne y_i, 1≤ci≤1000001 \le c_i \le 100000). 이는 도시 xix_i와 yiy_i를 잇는 요금 cic_i의 노선을 뜻한다. 어떤 두 도시 사이에도 노선은 최대 한 개만 있다.

출력

같은 노선을 두 번 이상 쓰지 않는, 비어 있지 않은 닫힌 경로의 최소 요금 합을 한 줄에 출력한다. 그런 경로가 존재하지 않으면 대신 BRAK을 출력한다.

예제3

  1. 예제 1

    입력
    5 6
    1 4 1
    3 1 10
    1 2 16
    2 3 100
    2 5 15
    5 3 20
    
    예상 출력
    61
    
  2. 예제 2

    입력
    3 3
    1 2 7
    2 3 8
    1 3 9
    
    예상 출력
    24
    
  3. 예제 3

    입력
    4 3
    1 2 3
    2 3 4
    3 4 5
    
    예상 출력
    BRAK