시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB94191718.889%

문제

토러스는 아래 그림과 같이 구멍이 하나 있는 도넛 형태의 도형을 의미한다.

두 플레이어가 $N$개의 토러스 위에서 그래프 게임을 한다. 처음에 각 토러스의 표면에는 $A_1$, $A_2$, $\cdots$, $A_N$개의 정점이 존재하고, 이 정점들 사이에는 간선이 없다. 게임은 두 플레이어가 번갈아 다음의 작업을 수행하며 진행된다.

  • 현재 게임에 존재하는 토러스 중 하나를 선택하여, 선택한 토러스 위의 정점을 원하는 대로 움직인다. 정점은 항상 항상 토러스의 표면을 따라서만 움직일 수 있으며, 정점을 움직일 때는 정점과 연결된 간선을 함께 움직여 연결이 끊기지 않도록 해야 한다. 이때 서로 다른 두 정점이 같은 위치에 존재하도록 만들어서는 안 된다.
  • 한 개 이상의 간선을 추가한다. 간선은 토러스의 표면에 존재해야 하며, 연결하는 두 정점 사이의 연속적인 경로가 되어야 한다는 조건만 만족한다면 어떤 형태로든 만들 수 있다. 이때 중복 간선이나 루프를 만들어서는 안 된다.
  • 선택한 토러스 위에 존재하는 간선 중 원하는 것을 새로 그린다. 다만 이 과정에서 정점 사이의 연결 관계가 변화해서는 안 된다.

작업이 끝난 후, 작업을 수행했던 토러스 위에 다음의 경우가 존재하면 그 작업을 수행한 플레이어가 즉시 패배한다.

  • 서로 교차하는 간선이 존재하는 경우
  • 정점이 간선 위에 존재하는 경우

다만 작업을 수행하는 도중에는 앞의 조건이 충족되어도 패배하지 않는다.

후공인 당신은 게임에서 승리하기 위해 토러스를 미리 조작하려고 한다. 여기서 조작이란, 게임에 존재하는 $0$개 이상 $N$개 이하의 토러스를 골라 구멍을 메워 구(sphere)로 만드는 것이다. 작업에는 조작된 구를 선택할 수 있으며, 처음 상태에서 구는 조작 전의 토러스 위에 있던 것과 같은 개수의 정점을 가진다.

두 플레이어가 모두 최선의 전략을 사용해 게임을 할 때, 선공이 패배하도록 게임을 조작할 수 있는지 판별하고, 가능하다면 그 방법을 출력하라. 방법이 여러 가지라면 아무거나 출력해도 정답으로 인정된다.

입력

첫 번째 줄에 토러스의 수 $N(1\le N\le 10^6)$이 주어진다.

두 번째 줄에 각 토러스 위에 있는 정점의 개수를 나타내는 $N$개의 정수 $A_1$, $A_2$, $\cdots$, $A_N(2\le A_i \le 10^{18})$이 공백으로 구분되어 주어진다.

출력

선공이 패배하도록 토러스를 미리 조작하는 방법이 존재한다면 Y를, 그럴 수 없다면 N을 출력한다.

Y를 출력한 경우, 그다음 줄에 조작된 토러스의 개수를 출력하고, 조작된 토러스의 개수가 한 개 이상인 경우 그 다음 줄에 조작된 토러스의 번호를 공백으로 구분하여 출력한다.

반드시 각 번호는 한 번씩만 등장해야 하고, 출력 순서는 무관하다.

서브태스크

번호배점제한
117

$A_i \leq 4$

283

추가적인 제한 조건 없음

예제 입력 1

1
3

예제 출력 1

N

게임은 한 개��� 토러스 위에서 진행된다. 선공이 작업을 수행하기 전 토러스 위에는 세 개의 정점이 연결되지 않은 채로 놓여 있다.

선공이 정점을 적절히 배치한 뒤 간선을 세 개 추가하였다.

모든 정점이 서로 연결되어 더 이상 간선을 추가하는 것이 불가능하고, 이에 따라 후공이 패배하였다. 당신이 토러스를 조작해 구(sphere)로 만들더라도 선공이 항상 첫 작업만에 승리할 수 있다. 따라서 올바른 출력은 N이 된다.

예제 입력 2

2
2 2

예제 출력 2

Y
0

예제 입력 3

2
2 3

예제 출력 3

N

예제 입력 4

5
5 7 8 9 9

예제 출력 4

Y
3
1 3 4

힌트

토러스나 구의 크기는 게임의 승패에 영향을 주지 않음을 증명할 수 있다.

채점 및 기타 정보

  • 예제는 채점하지 않는다.