시간 제한
메모리 제한
시간 제한
2초
메모리 제한
192 MB
V개의 마을과 E개의 일방통행 도로로 이루어진 도시가 있다. 마을은 1번부터 V번까지 번호가 붙어 있다.
도로를 따라 운동 경로를 잡으려 한다. 운동을 마친 뒤 시작한 마을로 돌아와야 하므로, 하나 이상의 도로를 따라 출발점으로 되돌아오는 사이클을 찾아야 한다. 가능한 사이클 중에서 지나간 도로 길이의 합이 가장 작은 값을 구하라.
두 마을 사이를 서로 반대 방향의 도로로 오가는 경우도 사이클에 포함된다.
첫째 줄에 마을의 수 V와 도로의 수 E가 빈칸을 사이에 두고 주어진다. (2 <= V <= 400, 0 <= E <= V(V-1))
다음 E개의 줄에는 정수 a, b, c가 주어진다. 이는 a번 마을에서 b번 마을로 가는 길이 c의 일방통행 도로를 뜻한다. 거리는 10,000 이하의 자연수이며, 같은 (a, b) 쌍은 두 번 이상 주어지지 않는다.
최소 사이클의 도로 길이 합을 출력한다. 가능한 사이클이 없으면 -1을 출력한다.