Xtreme NP-hard Problem?!
시간 제한5초메모리 제한1024 MB
정점 1에서 n까지 정확히 k개의 간선을 쓰는 단순 경로 중 가중치 합이 최소인 것을 찾고, 없으면 -1을 출력한다. n, m, k가 10^6까지 커서 문제 자체가 NP-난해임을 명시한다.
문제
주의! 이 문제는 NP-hard로 밝혀졌습니다. 하지만 NP-hard 문제를 출제하면 안 된다는 규정이 없었기 때문에 그냥 두기로 했습니다.
정점 개와 간선 개로 이루어진 양방향 그래프가 있다. 정점에는 1번부터 번까지, 간선에는 1번부터 번까지 번호가 붙어 있고, 번 간선의 가중치는 이다.
자연수 가 주어질 때, 1번 정점에서 출발해 번 정점에서 끝나면서 간선을 정확히 개 사용하는 단순 경로 중 가장 짧은 것의 길이를 구하여라.
단순 경로는 같은 정점을 두 번 지나지 않는 경로이고, 경로의 길이는 그 경로를 이루는 간선의 가중치 합이다.
입력
첫째 줄에 세 정수 , , 가 공백으로 구분되어 주어진다.
다음 개 줄 중 번째 줄에는 세 정수 , , 가 공백으로 구분되어 주어진다. 번 간선이 번 정점과 번 정점을 잇는 가중치 의 간선이라는 뜻이다.
루프와 다중 간선은 주어지지 않는다.
출력
1번 정점에서 출발해 번 정점에서 끝나면서 간선을 정확히 개 사용하는 가장 짧은 단순 경로의 길이를 출력한다. 그러한 경로가 없으면 -1을 출력한다.