임계 3-경로
시간 제한3초메모리 제한128 MB
가중 DAG에서 각 출발점에서 목표점까지 서로 겹치지 않는 세 경로의 무게 합이 가장 크도록 구합니다.
문제
PERT(Program Evaluation and Review Technique) 차트는 프로젝트 관리에서 프로젝트를 완료하는 데 필요한 작업들을 표현하는 그래프 도구입니다. 이 차트는 방향 비순환 그래프이며, 각 간선은 하나의 작업을, 간선의 가중치는 그 작업을 수행하는 데 걸리는 시간을 나타냅니다. 간선 가 정점 로 들어오고 간선 가 에서 나간다면, 작업 를 작업 보다 먼저 끝내야 합니다. 따라서 차트의 한 경로는 정해진 순서대로 수행해야 하는 작업들의 나열입니다. 이 차트에는 사이클이 없습니다.
임계 경로(critical path)는 차트에서 가장 긴 경로이며, 그 가중치는 모든 작업을 끝내는 데 필요한 전체 시간의 하한입니다.
서로 다른 여섯 개의 정점 에 대해 3-경로를 다음과 같이 정의합니다.
- 3-경로는 세 개의 경로 로 이루어지며, 각 는 에서 로 가는 경로입니다().
- 세 경로 는 정점을 공유하지 않습니다. 즉 어떤 정점도 둘 이상의 경로에 속하지 않습니다.
3-경로의 길이는 , , 의 길이(간선 가중치의 합)를 모두 더한 값입니다. 임계 3-경로는 가능한 모든 3-경로 중에서 길이가 최대인 3-경로입니다.
예를 들어 아래 첫 번째 예제의 그래프에서 , 이라 하면, 하나의 임계 3-경로는 다음과 같습니다.
- :
- :
- :
이때 길이는 입니다.
PERT 차트와 여섯 개의 정점이 주어질 때, 임계 3-경로의 길이를 구하는 프로그램을 작성하세요.
입력
첫 줄에 테스트 케이스의 수 가 주어집니다. 각 테스트 케이스의 첫 줄에는 두 정수 과 이 주어지며(, ), 은 정점의 수, 은 간선의 수입니다. 정점은 부터 까지 번호가 매겨집니다. 다음 줄에는 서로 다른 여섯 정수 가 주어집니다. 이어지는 개의 줄에는 각각 세 정수 , , 가 주어지며(), 이는 정점 에서 로 가는 가중치 의 방향 간선을 뜻합니다. 모든 간선에 대해 라고 가정해도 됩니다.
출력
각 테스트 케이스마다 한 줄에, (에서 ), (에서 ), (에서 )으로 이루어진 임계 3-경로의 길이를 출력합니다. 그러한 3-경로가 존재하지 않으면 을 출력합니다.