페인트 칠하기

NYPC 2022 · Round 1 연습문제

N×MN \times M 크기의 격자판이 있다. NN 개의 행은 11부터 NN까지 번호가 매겨져 있고, MM 개의 열은 11부터 MM까지 번호가 매겨져 있다. 11부터 77까지 일곱 가지의 색을 격자판에 칠할 수 있다. 색을 칠할 때는 격자판의 한 행을 선택해서 그 행에 있는 모든 격자 칸에 한 색을 덧칠할 수 있고, 혹은 격자판의 한 열을 선택해서 그 열에 있는 모든 격자 칸에 한 색을 덧칠할 수 있다.

예를 들어, 아래와 같이 4×44 \times 4 크기의 격자판이 있다고 하자. 초기에 각 격자 칸에는 아무런 색이 칠해져 있지 않다. 다음 <그림 1>은 33 번 행에 빨간색(11번 색)을 칠하고 33 번 열에 파란색(33번 색)을 칠했을 때의 과정을 보여준다.

<그림 1> 격자판에 색을 칠하는 과정
<그림 1> 격자판에 색을 칠하는 과정

각 격자 칸마다 최종적으로 칠해져 있는 색이 주어질 때, 적절히 색을 칠해 주어진 상황이 되도록 하자.

입력 형식

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

그 다음 NN 개의 줄에 각 격자 칸마다 최종적으로 칠해져 있는 색을 나타내는 MM 개의 수가 공백으로 구분되어 주어진다. 주어지는 수는 00 이상 77 이하이며, 주어지는 수가 00인 경우 색이 칠해져 있지 않거나 어떠한 색이 칠해져 있어도 상관 없음을 의미한다.

적절히 색을 칠해 주어진 상황을 항상 만들 수 있는 입력이 주어진다.

출력 형식

첫 줄에 색을 칠하는 횟수 KK를 출력한다. 출력하는 KK1000010\,000보다 크지 않아야 한다.

그 다음 KK 개의 줄에 걸쳐, 각 줄에 색칠하는 연산을 나타내는 한 개의 문자와 두 개의 정수를 색칠 순서대로 출력한다. 행을 선택하여 색칠하는 경우 H 행번호 색번호 형식으로 출력하고, 열을 선택하여 색칠하는 경우 V 열번호 색번호 형식으로 출력한다.

색을 칠하는 횟수 KK를 가장 작게 할 필요는 없다. 만약, 가능한 답이 여러 가지인 경우 그중 아무거나 하나 출력한다.

예제

입력

4 4 0 0 3 0 0 0 0 0 1 1 3 0 0 0 0 0

출력

2 H 3 1 V 3 3

채점 방식

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

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

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

해설