깃발 꽂기
면접 대비시간 제한2초메모리 제한1024 MB
같은 N개 정점 위에 지상 통로 그래프와 구름다리 그래프가 주어질 때, 지상 통로만 쓰는 모든 경로에 깃발이 하나 이상 있고 구름다리만 쓰는 모든 경로에는 깃발이 하나 이하가 되도록 건물을 고른다.
문제
KSA는 개의 건물로 구성되어 있으며 으로 건물 번호가 붙어 있다. 또한, 건물들 사이를 이동할 수 있는 개의 지상 통로와 개의 구름다리가 있다. 지상 통로는 로, 구름다리는 로 번호가 붙어 있다.
번 지상 통로는 서로 다른 두 건물 와 를 양방향으로 연결한다. 즉, 에서 방향, 에서 방향 모두 이동할 수 있다.
비슷하게, 번 구름다리는 서로 다른 두 건물 와 를 양방향으로 연결한다.
두 건물 사이에 지상 통로나 구름다리가 여러 개 존재할 수도 있다.
이제 아래 조건을 만족하게끔 개 이상의 건물에 깃발을 꽂으려고 한다. 이때 경로의 양쪽 끝에 있는 건물도 경로에 포함된다.
- 한 개 이상의 지상 통로를 지나고, 구름다리를 지나지 않는 모든 경로에서 깃발이 꽂힌 건물의 개수는 개 이상이다.
- 한 개 이상의 구름다리를 지나고, 지상 통로를 지나지 않는 모든 경로에서 깃발이 꽂힌 건물의 개수는 개 이하이다.
하나의 경로는 같은 통로나 다리를 여러 번 지날 수 없다. 조건을 만족하려면 어떤 건물들에 깃발을 꽂아야 하는지 찾아보자!
입력
첫 번째 줄에 세 정수 , , 가 주어진다.
번째 줄에 두 정수 , 가 주어진다.
번째 줄에 두 정수 , 가 주어진다.
출력
첫 번째 줄에 조건을 만족하게끔 건물들에 깃발을 꽂을 수 있다면 YES, 아니라면 NO를 출력한다.
만약 꽂을 수 있다면, 개 이상의 정수를 출력한다. 각 정수는 깃발을 꽂을 건물들의 번호를 의미한다. 단, 같은 건물 번호를 중복해서 출력하지 않아야 한다.
깃발을 하나도 꽂지 않는 경우도 조건을 만족한다면 두 번째 줄에 아무것도 출력하지 않아도 된다.
정답이 여러 개 존재한다면 아무거나 출력해도 상관없으며, 정수들을 출력하는 순서는 상관없다.
제한
- ;
- ;