| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 (추가 시간 없음) | 1024 MB (추가 메모리 없음) | 589 | 315 | 274 | 56.612% |
김채완 교수는 “프로그래밍과 봉사” 과목의 기말고사를 준비하고 있다. 고사실은 가로 $M$칸, 세로 $N$칸인 직사각형 형태이며, 모든 칸마다 정확히 한 명의 학생이 앉게 된다. 김채완 교수는 학생들의 부정행위를 막기 위해 모든 학생이 인접한 칸의 학생과 다른 시험지를 받을 수 있도록 여러 종류의 시험지를 준비하려 한다. 이때 인접한 학생은 가로, 세로, 또는 대각선으로 붙어 있는 칸에 있는 학생을 의미한다.
김채완 교수는 많은 종류의 시험지를 준비할 시간이 없었기 때문에 시험지의 종류를 최소화하고자 한다. 가능한 한 적은 종류의 시험지를 사용하여 조건을 만족하도록 시험지를 배부하는 프로그램을 작성하시오.
첫째 줄에 정수 $N,ドル $M$이 공백으로 구분되어 주어진다. $(1 \leq N, M \leq 1,000円)$
첫째 줄에 사용한 시험지의 종류의 수 $K$를 출력한다.
둘째 줄부터 $N$개의 각 줄에 1ドル$ 이상 $K$ 이하의 정수 $M$개를 공백으로 구분하여 출력한다. 각 정수는 해당 칸에 배부된 시험지의 번호를 의미한다. 즉, $y+1$번째 줄의 $x$번째 정수는 위에서 $y$번째, 왼쪽에서 $x$번째 칸에 배부된 시험지의 번호이다.
3 4
4 3 2 4 2 4 1 3 1 3 2 4 2
1 1
1 1
입출력 양이 많으므로 문제지 2-4페이지의 언어 가이드에 있는 빠른 입출력을 사용하는 것을 권장한다.