QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 1024 MB 満点: 10

#8411. Łamigłówka 3 [C]

統計

Bajtek은 모바일 게임을 즐겨 합니다. 하지만 그는 다른 게임들의 광고가 자주 나타나는 것에 짜증을 느낍니다. 광고 속 플레이어는 게임을 매우 못하는데, 이는 보는 사람의 좌절감을 유발하고 직접 플레이하고 싶게 만들기 위한 것입니다. 그러한 광고 중 하나가 Bajtek의 기억에 특히 깊이 남았습니다.

모든 것에서 영감을 얻을 수 있듯이, Bajtek은 위의 게임을 바탕으로 문제를 만들기로 했습니다. 그는 $n \times m$ 크기의 목표 색상 판을 선택하고, 아무런 색이 칠해져 있지 않은 $n \times m$ 크기의 판으로 게임을 시작합니다. 한 번의 움직임으로 그는 행이나 열을 선택하고 그 안의 모든 칸을 자신이 선택한 색으로 칠할 수 있습니다(위의 그림에 나온 게임에서는 행과 열의 색상이 정해져 있었지만, 여기서는 더 큰 자유도가 주어진다는 점에 유의하세요). 문제를 공식화하기 위해 그는 모든 색상을 영어 대문자로 표시했습니다. 당신은 그를 도와 그가 설정한 각 판에 대해 목표 색상 배치를 올바르게 생성하는 움직임의 순서를 출력하는 프로그램을 작성할 수 있습니까? 입력으로 주어지는 판은 최대 $n + m$번의 움직임으로 목표를 달성할 수 있다고 가정해도 좋습니다.

입력

첫 번째 줄에는 판의 높이와 너비를 나타내는 두 정수 $n$과 $m$ ($1 \le n, m \le 2\,000$)이 주어집니다.

이어지는 $n$개의 각 줄에는 $m$개의 문자가 주어지며, 각 문자는 영어 대문자입니다. $i$번째 줄의 $j$번째 문자는 판의 $i$번째 행, $j$번째 열에 위치한 칸의 목표 색상을 나타냅니다.

주어진 색상 배치는 문제에 설명된 최대 $n + m$번의 움직임으로 달성할 수 있음이 보장됩니다.

출력

첫 번째 줄에는 수행할 움직임의 횟수 $r$ ($1 \le r \le n + m$)을 출력합니다. 이어지는 $r$개의 각 줄에는 움직임에 대한 설명을 출력합니다.

하나의 움직임에 대한 설명은 행을 칠할지 열을 칠할지를 나타내는 문자 'R' 또는 'K'로 시작해야 합니다('R'은 행, 'K'는 열을 의미함). 그 뒤에 공백을 하나 두고, 칠하고자 하는 행 또는 열의 번호를 출력합니다. 행은 위에서 아래로 $1$부터 $n$까지, 열은 왼쪽에서 오른쪽으로 $1$부터 $m$까지 번호를 매깁니다. 그 뒤에 공백을 하나 두고, 선택한 행 또는 열을 칠할 색상을 나타내는 영어 대문자 하나를 출력합니다.

움직임의 횟수를 최소화할 필요는 없으며, 최대 $n + m$번 이내로 수행하기만 하면 됩니다.

예제

입력 1

5 5
AAPAA
APPAA
AAPAA
AAPAA
APPPA

출력 1

10
R 1 Z
K 4 A
K 2 P
R 5 P
R 4 A
R 3 A
R 1 A
K 5 A
K 3 P
K 1 A

입력 2

2 3
AAA
PPP

출력 2

2
R 2 P
R 1 A

참고

예제 설명: 첫 번째 예제 테스트에서 문자 'P'가 녹색, 'A'가 노란색, 'Z'가 파란색을 의미한다고 가정하면, 선택된 움직임의 순서는 다음과 같이 판을 칠합니다.

참고: 예제 설명: 첫 번째 예제 테스트에서 문자 'P'가 녹색, 'A'가 노란색, 'Z'가 파란색을 의미한다고 가정하면, 선택된 움직임의 순서는 다음과 같이 판을 칠합니다.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.