| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 | 1024 MB | 29 | 12 | 10 | 43.478% |
N-Queen 문제는 $N\times N$ 체스판 위에 어떠한 퀸이 다른 퀸을 공격하지 않도록 최대한 많은 개수의 퀸을 놓는 문제이다.
hi12와 bye17은 언제나처럼 N-Queen 문제에 대해 토론하고 있었다. 그러다가, 체스에는 퀸 외에도 $5$종류의 기물이 더 있다는 사실을 떠올리게 되었다. 추가적인 토론 끝에 hi12와 bye17은 $N\times N$ 체스판 위에 특정 기물을 최대 $M$개까지 올릴 수 있을 것이라는 결론에 다다랐지만, 아직 그 결론을 증명하지는 못했다.
이를 증명하기 위해, hi12는 $N\times N$ 체스판 위에 어떠한 기물이 다른 기물을 공격하지 않도록 $M$개의 기물을 놓는 배치를 알아내면 된다고 생각했다. 반면 bye17은 각 구역에 어떠한 기물이 다른 기물을 공격하지 않게 $2$개 이상의 기물을 놓을 수 없도록 $N \times N$ 체스판을 $M$개의 구역으로 나누는 방법을 찾으면 된다고 생각했다.
hi12와 bye17을 도와 기물의 배치와 구역의 배치를 만들어서 위 결론을 증명해 보자!
문제에서 나오는 체스 기물과 이의 공격 방식은 하단의 노트를 참고하자.
첫째 줄에는 체스판의 크기 $N$이 주어진다. $(1\le N\le 1217)$
둘째 줄에는 체스판 위에 올릴 기물을 나타내는 문자열 $P$가 주어진다. ($P$는 King, Queen, Rook, Bishop, Knight, Pawn 중 하나)
첫째 줄에는 $N\times N$ 체스판 위에 입력받은 기물을 올릴 수 있는 최대 개수 $M$을 출력한다.
둘째 줄부터 $N$개의 줄에 걸쳐 hi12가 궁금해하는 기물의 배치를 다음과 같이 출력한다.
Knight라면 $p$는 예외적으로 N이다.. 또는 $p$여야 한다.$N+1$번째 줄부터 $N$개의 줄에 걸쳐 bye17이 궁금해하는 구역의 배치를 다음과 같이 출력한다.
만약 가능한 답이 여러 가지라면, 그중 아무거나 하나를 출력한다.
3 King
4 K.K ... K.K 1 1 2 1 2 2 3 3 4
4 Queen
4 ..Q. Q... ...Q .Q.. 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
4 Rook
4 .R.. ...R R... ..R. 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
2 Bishop
2 B. B. 1 2 2 1
3 Knight
5 .N. NNN .N. 1 2 3 3 4 5 5 1 2
2 Pawn
2 PP .. 1 2 2 1
문제에서 나오는 각 체스 기물의 공격 방식은 아래와 같다.
킹 (King, K)은 상하좌우 또는 대각선으로 정확히 1칸 거리에 있는 기물을 공격한다.
퀸 (Queen, Q)은 상하좌우 또는 대각선에 있는 기물을 거리에 상관없이 공격한다.
룩 (Rook, R)은 상하좌우에 있는 기물을 거리에 상관없이 공격한다.
비숍 (Bishop, B)은 대각선에 있는 기물을 거리에 상관없이 공격한다.
나이트 (Knight, N)는 가로로 2칸, 세로로 1칸 거리에 있는 기물과 가로로 1칸, 세로로 2칸 거리에 있는 기물을 공격한다.
폰 (Pawn, P)은 왼쪽 위 1칸과 오른쪽 위 1칸에 있는 기물을 공격한다.
실제 체스에서의 공격은 이와 조금 다를 수 있지만, 이 문제에서는 노트에 적힌 방식을 기준으로 한다.