| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1.5 초 (추가 시간 없음) | 1024 MB | 107 | 17 | 15 | 18.987% |
이 문제는 인터랙티브 문제이다.
KSA의 알고리즘 문제 해결 연구회 Automata의 두 연구회원 everyone과 here는 2023 KSA Automata Winter Contest를 기념하여 이상한 판 뒤집기 게임을 한다. 이상한 판 뒤집기 게임의 규칙은 아래와 같다.
$N$개의 판이 바닥에 원형으로 배열되어 있다. 판의 번호는 시계 반대 방향으로 순서대로 0,ドル 1, \cdots, N-1$이다. 각각의 판에 대해 한 면은 빨간색, 다른 한 면은 파란색이다. 바닥에는 $N$개의 버튼 또한 놓여있는데, $i$번 버튼은 $i$번 판과 $(i+1) \bmod N$번 판 사이에 있다. $(0\le i<N)$
초기 상태에 각각의 판이 어떤 면이 보이도록 놓여있는지와 누구의 차례가 먼저인지 주어진다. 두 플레이어가 번갈아 가며 차례를 가지며, 자신의 차례가 되면 아래 두 가지 동작 중 하나를 선택해서 할 수 있다.
단, 한번 눌린 버튼은 비활성화되어 다시 누를 수 없다.
모든 버튼이 비활성화되는 순간 게임이 종료된다. 이때 빨간색 면이 보이는 판의 개수와 파란색 면이 보이는 판의 개수가 같으면 everyone이 이기고, 다르면 here가 이긴다.
everyone과 here는 당신에게 도움을 요청했다. 그러나 동시에 둘 모두를 도와줄 수는 없으므로, 당신은 둘 중 한 사람을 골라 그 사람이 이기는 방법을 알려줘야 한다.
이 게임은 임의의 정수 $N\ge2$에 대하여 잘 정의되지만, 출제자는 여러분이 2023 KSA Automata Winter Contest에서 더 높은 점수를 받을 수 있도록 $N$이 4ドル$의 배수라는 제약 조건을 추가하였다.
당신의 프로그램은 아래의 과정을 통해 표준입력과 표준출력으로 인터랙터와 상호작용해야 한다. Phase 1이 끝나고 즉시 Phase 2로 넘어가며, Phase 2가 끝나면 프로그램을 바로 종료해야 한다.
R, 파란색 면이 보이는 상태라면 $S_i =$B이다.각 채점 데이터에 대하여, 게임에서 도와주기로 한 플레이어가 이겼다면 맞았습니다!!, 도와주지 않기로 한 플레이어가 이겼다면 틀렸습니다 결과를 받는다. 단, 게임이 끝나도 프로그램이 즉시 종료되지 않거나, 각 줄을 출력한 뒤 출력 버퍼를 비우지 않거나, 출력 형식을 어기거나, 게임 규칙을 어기는 수를 둘 경우에는 예상하지 못한 결과를 받을 수 있다.
everyone,ドル$here$\}$R,ドル$B$\}$everyone,ドル$here$\}$| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 1 | $N=4$; $M=$ |
| 2 | 1 | $N=4$; $M=$ |
| 3 | 2 | $N=4$; $S=$ |
| 4 | 4 | $N=4$ |
| 5 | 6 | $N\le 8$ |
| 6 | 11 | $N\le 12$ |
| 7 | 18 | 모든 0ドル\le i<N$에 대하여 $S_i=$ |
| 8 | 24 | $M =$ |
| 9 | 24 | $M =$ |
| 10 | 9 | 추가 제약 조건 없음 |
8 here BBRBRBBR 1 2 1 4 0 7 0 0
here 0 3 0 1 0 6 1 5
당신의 프로그램은 무언가를 출력한 후 즉시 출력 버퍼를 비워야 한다. 다음은 언어별 출력 버퍼를 비우는 방법이다.
fflush(stdout)std::cout.flush()sys.stdout.flush()System.out.flush()또한, 예제의 빈 줄은 입출력이 어떤 방식으로 이루어지는지 이해를 돕기 위해 의도적으로 추가된 것이며, 실제 입출력에는 빈 줄이 나타나지 않는다.
예제와 같이 게임을 진행하면, 게임이 종료될 때 빨간 면이 보이는 판이 3ドル$개, 파란 면이 보이는 판이 5ドル$개이므로 here가 이긴다.
School > 한국과학영재학교 > 2023 KSA Automata Winter Contest I번