시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1.5 초 (추가 시간 없음) | 1024 MB | 68 | 11 | 9 | 22.500% |
이 문제는 인터랙티브 문제이다.
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
가 이긴다.
High School > 한국과학영재학교 > 2023 KSA Automata Winter Contest I번