| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 94 | 19 | 17 | 18.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를 출력한 경우, 그다음 줄에 조작된 토러스의 개수를 출력하고, 조작된 토러스의 개수가 한 개 이상인 경우 그 다음 줄에 조작된 토러스의 번호를 공백으로 구분하여 출력한다.
반드시 각 번호는 한 번씩만 등장해야 하고, 출력 순서는 무관하다.
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 17 | $A_i \leq 4$ |
| 2 | 83 | 추가적인 제한 조건 없음 |
1 3
N
게임은 한 개��� 토러스 위에서 진행된다. 선공이 작업을 수행하기 전 토러스 위에는 세 개의 정점이 연결되지 않은 채로 놓여 있다.
선공이 정점을 적절히 배치한 뒤 간선을 세 개 추가하였다.
모든 정점이 서로 연결되어 더 이상 간선을 추가하는 것이 불가능하고, 이에 따라 후공이 패배하였다. 당신이 토러스를 조작해 구(sphere)로 만들더라도 선공이 항상 첫 작업만에 승리할 수 있다. 따라서 올바른 출력은 N이 된다.
2 2 2
Y 0
2 2 3
N
5 5 7 8 9 9
Y 3 1 3 4
토러스나 구의 크기는 게임의 승패에 영향을 주지 않음을 증명할 수 있다.
University > 고려대학교 > MatKor Cup > 제5회 고려대학교 MatKor Cup: 2024 Summer/Fall D번