두 경로
시간 제한5초메모리 제한1024 MB
방향 비순환 그래프에서 A에서 B로 가는 경로와 C에서 D로 가는 경로를 간선이 겹치지 않게 골라 총 길이가 가장 짧은 쌍을 찾습니다. 그런 쌍이 없으면 NO를 출력합니다.
문제
정점의 고정 쌍 와 가 주어진 방향 비순환 그래프가 있다. 에서 로 가는 단순 경로와 에서 로 가는 단순 경로로 이루어진 쌍 중, 두 경로가 간선을 공유하지 않는 모든 경우를 고려한다. 두 경로 길이의 합이 최소인 쌍을 찾는다.
입력
첫 줄에 정점 수 과 간선 수 이 주어진다 (, ). 다음 개의 줄에는 에서 로 가는 간선이 있음을 뜻하는 정수 와 가 주어진다 (). 이 그래프에는 자기 자신으로 가는 간선, 중복 간선, 사이클이 없다. 마지막 줄에는 고정 정점 , , , 가 이 순서대로 주어진다 ().
출력
두 경로의 쌍이 존재하지 않으면 NO 한 줄만 출력한다. 존재하면 첫 줄에 YES를 출력하고, 이어서 에서 로 가는 경로, 에서 로 가는 경로를 차례로 출력한다. 각 경로는 두 줄로 출력한다. 첫 줄에는 경로의 정점 수를, 둘째 줄에는 방문 순서대로 정점 번호를 쓴다. 각 경로는 단순 경로여야 하므로, 같은 경로 안에서 한 정점을 두 번 이상 방문하지 않는다. 답이 여러 개이면 그중 아무거나 출력한다.