모든 곳을 안전하게
면접 대비시간 제한1초메모리 제한1024 MB
말 하나를 정확히 x칸 옮기거나 옮기지 않아, 말이 있는 모든 칸에 말이 두 개 이상 있게 만든다.
문제
《백개먼》은 주사위 두 개를 던져서 나온 눈의 수만큼 말을 선택하여 정해진 방향으로 이동시키는 게임입니다. 말을 이동할 수 있다면 반드시 이동해야 하며, 두 주사위의 눈이 같다면 각 주사위의 눈을 두 번씩 총 번 사용해야 합니다. 예를 들어 주사위의 눈이 , 라면, 하나의 말을 칸 이동하거나, 두 개의 말을 각각 칸, 칸 이동할 수 있습니다. 그리고 주사위의 눈이 , 이라면, 칸 이동하는 것을 총 번 진행해야 합니다.
말을 이동할 때, 상대편 말이 두 개 이상 있는 칸으로는 이동할 수 없지만, 상대편 말이 정확히 개 있는 칸으로 이동하는 것은 가능합니다. 이때 상대편의 말은 처음부터 다시 이동해야 합니다. 따라서 본인의 말이 잡히지 않도록, 본인의 말이 있는 모든 칸에 두 개 이상의 말이 있는 상태를 유지하는 것이 이 게임의 간단한 전략 중 하나입니다. 이러한 상태를 안전한 상태라 합시다. 안전한 상태는 상대편의 말이 없더라도 정의될 수 있습니다.
번부터 번까지 왼쪽부터 순서대로 번호가 매겨진 개의 칸이 있고 주사위의 눈이 부터 까지 있는 변형된 게임판을 생각해 봅시다. 번 칸에 놓여있는 말 하나에 주사위 눈 를 사용하면 번 칸으로 이동하게 됩니다. 단, 인 경우에는 이동할 수 없습니다.
실버는 백개먼의 고수가 되기 위해 안전한 상태를 만드는 연습을 하고 있습니다. 현재 게임판에는 실버의 검은 말만 놓여있는 상태입니다. 성질이 급한 실버는 주사위의 눈을 하나만 남기고 모두 이동했습니다. 현재 번 칸에는 개 이상의 말이 있습니다. 마지막 남은 주사위의 눈을 어떻게 사용해야 안전한 상태를 만들 수 있는지 구해봅시다.
입력
첫 번째 줄에 정수 이 주어집니다.
두 번째 줄에 번부터 번까지 각 칸에 있는 말의 개수 , , , 이 공백으로 구분되어 주어집니다.
세 번째 줄에 남은 주사위의 눈을 나타내는 정수 가 주어집니다.
출력
만약 어떻게 이동하더라도 안전한 상태를 만들 수 없다면 첫 번째 줄에 NO를 출력합니다.
안전한 상태를 만들 수 있다면 첫 번째 줄에 YES를 출력합니다. 다음 줄에 이동할 말의 시작 칸과 도착 칸을 공백으로 구분하여 출력합니다. 가능한 이동이 여러 가지라면 아무거나 한 가지만 출력합니다.
제한
- 모든 에 대해