1-2-3 퍼즐

NYPC 2024 · Round 1

N×MN \times M 크기의 격자판이 주어졌다. 모든 칸에 00 이상 33 이하인 숫자가 적혀있다. 00은 그 칸이 비었음을 의미한다. 예를 들어, 아래 그림은 4×44 \times 4 크기의 격자판으로 두 개의 칸에 22가 적혀있고, 다른 모든 칸은 비어있다.

이때, 아래의 조건을 모두 만족하도록 비어있는 칸들, 즉, 00이 적힌 칸들에 각각 11, 22, 33 중 하나의 숫자를 적어보자.

  1. 모든 숫자들은 왼쪽, 오른쪽, 위, 아래 네 방향에 같은 숫자가 있는 경우 하나의 그룹을 구성한다.
  2. 모든 11은 크기 11인 그룹을 만들고, 모든 22는 크기 22인 그룹을 만들고, 모든 33은 크기 33인 그룹을 만들어야 한다.

예를 들어, 위의 격자판의 경우에는 다음과 같이 위 조건을 모두 만족하도록 빈 칸을 채울 수 있다.

입력 형식

첫 줄에 격자판의 크기를 나타내는 두 정수 NNMM이 공백으로 구분되어 주어진다. (1N,M501 \le N, M \le 50)

이어지는 NN 개의 줄에는 위에서 아래로 격자판을 한 줄씩 읽었을 때 정보를 나타내는 00 이상 33 이하인 MM 개의 정수가 공백으로 구분되어 주어진다.

출력 형식

NN 개의 줄에 걸쳐 답을 출력한다. 위에서 아래로 격자판을 한 줄씩 읽었을 때 정보를 나타내는 00 이상 33 이하인 MM 개의 정수를 공백으로 구분하여 출력한다.

예제

입력

4 4 0 0 0 0 0 0 0 2 0 0 2 0 0 0 0 0

출력

1 3 3 2 3 1 3 2 3 2 2 3 3 1 3 3

채점 방식

이 문제는 풀이 소스 코드를 제출하지 않고, 각 테스트 케이스의 입력 데이터를 다운받아 알맞은 출력 파일을 만들어 출력 파일만을 제출하는 문제다.

문제 해결을 도와주는 시뮬레이터가 아래 미션에 대해 제공된다. 제공되는 시뮬레이터는 최신 버전의 크롬 브라우저에서 여는 것을 권장한다.

시뮬레이터에서 비어있는 칸들을 드래그 앤 드롭으로 이어주면 그룹을 구성할 수 있다.

미션 1
미션 2
미션 3
미션 4
미션 5
미션 6
미션 7
미션 8
미션 9
미션 10

이 문제의 총점은 모든 미션의 점수의 합으로 계산된다. 각 미션의 점수를 계산하는 방법은 다음과 같다.

P=S×cαP = S \times \frac{c}{\alpha}

이후, PP는 최종적으로 0.10.1 단위로 버림된다.

단, 참가자의 출력이 올바르지 않은 경우 (출력 형식을 맞추지 않았거나, 격자판에 적힌 00이 아닌 숫자가 입력과 다른 경우 등) P=0P = 0이다.

각 미션의 정보는 다음과 같다.

#SSα\alpha
1110101414
2210106464
3310105050
4410107979
5510107474
661010254254
771010513513
881010740740
99101011591159
1010101020002000

미션마다 만점을 받을 수 있는 출력이 존재함이 보장된다.

해설