토러스 게임 조작하기
시간 제한1초메모리 제한1024 MB
두 플레이어가 N개의 토러스에 간선을 번갈아 추가합니다. 일부 토러스의 구멍을 메워 구로 바꿔 첫 번째 플레이어가 지도록 만들 수 있는지 판단하고, 가능하면 바꿀 토러스의 번호를 출력합니다.
문제
토러스는 아래 그림과 같이 구멍이 하나 있는 도넛 모양의 도형이다.

두 플레이어가 개의 토러스 위에서 그래프 게임을 한다. 처음에 토러스 의 표면에는 개의 정점이 있고, 정점 사이에는 간선이 없다. 플레이어는 번갈아 가며 다음 작업 중 하나를 수행한다.
- 게임에 있는 토러스 중 하나를 골라 그 위의 정점을 원하는 대로 움직인다. 정점은 토러스의 표면을 따라서만 움직일 수 있다. 정점을 움직일 때는 연결된 간선도 함께 움직여서 연결이 끊어지지 않도록 해야 한다. 서로 다른 두 정점이 같은 위치에 있을 수는 없다.
- 간선을 한 개 이상 추가한다. 간선은 토러스의 표면 위에 있어야 하며, 양 끝 정점 사이의 연속된 경로이기만 하면 어떤 모양이든 가능하다. 중복 간선과 루프는 만들 수 없다.
- 선택한 토러스의 간선 중 원하는 것을 새로 그린다. 이때 정점 사이의 연결 관계가 바뀌어서는 안 된다.
작업을 마친 뒤, 작업을 수행한 토러스 위에 다음 중 하나가 있으면 그 작업을 수행한 플레이어가 즉시 패배한다.
- 서로 교차하는 간선이 있다.
- 정점이 간선 위에 있다.
다만 작업을 수행하는 도중에는 이 조건에 걸려도 패배하지 않는다.
당신은 후공이다. 게임에서 이기기 위해 시작 전에 토러스를 미리 조작한다. 조작이란 개 이상 개 이하의 토러스를 골라 구멍을 메워 구(sphere)로 만드는 것이다. 게임 중에 조작된 구를 선택할 수 있다. 처음에 구는 조작 전 토러스와 같은 개수의 정점을 가진다.
두 플레이어가 모두 최선의 전략을 쓸 때, 선공이 패배하도록 토러스를 조작할 수 있는지 판별하라. 가능하다면 그 방법을 출력하라. 방법이 여러 가지라면 아무거나 출력해도 정답으로 인정된다.
입력
첫 번째 줄에 토러스의 개수 ()이 주어진다. 두 번째 줄에는 각 토러스 위의 정점 개수를 나타내는 정수 ()이 공백으로 구분되어 주어진다.
출력
선공이 패배하도록 토러스를 조작할 수 있으면 Y를, 없으면 N을 출력한다.
Y를 출력한 경우, 다음 줄에 조작한 토러스의 개수를 출력한다. 그 개수가 1 이상이면, 그다음 줄에 조작한 토러스의 번호를 공백으로 구분하여 출력한다. 각 번호는 한 번씩만 나와야 하며, 출력 순서는 상관없다.
힌트
토러스나 구의 크기가 게임의 승패에 영향을 주지 않음을 증명할 수 있다.