| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 3 초 | 512 MB | 169 | 22 | 14 | 11.111% |
K명의 학생이 선생님이 고른 수를 맞추는 게임을 한다. 게임이 진행되는 방식은 다음과 같다.
위 게임을 할 때, 각 학생들은 자신의 승리 확률을 가장 높이는 질문을 한다. 또한 그러한 질문의 선택지가 여러가지 있는 경우에는 그 중에서 uniform random하게 수를 골라 질문한다. 학생들이 이 전략을 사용할 것임을 이미 모든 학생들이 알고 있는 상태이다.
당신의 목표는 1번 학생이 첫 차례에서 질문할 수 있는 수의 후보가 무엇인지를 찾는 것이다.
양의 정수 M과 학생의 수 K가 주어졌을 때, N = 1, 2, ..., M 인 경우 각각에 대해 첫 차례에 1번 학생이 질문할 수의 후보들을 구하는 프로그램을 작성하라.
첫 번째 줄에 양의 정수 M (2 ≤ M ≤ 200)이 주어진다.
두 번째 줄에는 학생의 수 K (2 ≤ K ≤ 50)이 주어진다.
M개의 줄에 걸쳐 정답을 출력한다.
i번째 줄에는 N = i인 경우에 1번 학생의 첫 질문으로 가능한 답의 후보들을 오름차순으로 P1, P2, ..., Pk라 할 때, k+1개 수를 공백을 사이에 두고 k P1 P2 ... Pk 의 형식으로 출력한다.
4 3
1 1 2 1 2 3 1 2 3 2 1 4
N이 3 이하인 경우에는 다음 차례가 돌아오지 않기 때문에 어떤 수를 골라도 승리 확률이 1/N로 동일하다.
반면 N이 4인 경우, 처음에 2 또는 3을 고르면 맞추지 못했을 경우 답의 후보가 2개 이하로 줄어 다음 차례가 오지 않지만, 처음에 1 또는 4를 고르면 틀려도 다음 차례가 올 확률이 있기 때문에 승리 확률이 1/N보다 커지게 된다.
15 5
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 2 1 6 2 1 7 2 1 8 2 1 9 2 2 9 2 3 9 2 4 9 2 6 8 2 1 14 1 8