QOJ.ac

QOJ

حد الوقت: 2 s حد الذاكرة: 1024 MB مجموع النقاط: 10

#8411. Casse-tête 3 [C]

الإحصائيات

Bajtek adore jouer aux jeux mobiles. Cependant, il est souvent irrité par les publicités pour d'autres jeux, où le joueur joue très mal, ce qui est censé provoquer la frustration du spectateur et l'envie de jouer. L'une de ces publicités (que vous avez peut-être eu l'occasion de voir vous-même) a particulièrement marqué Bajtek.

Comme l'inspiration peut venir de n'importe où, Bajtek a décidé de créer un problème basé sur le jeu ci-dessus. Il choisit une grille colorée cible de dimensions $n \times m$, et commence le jeu avec une grille $n \times m$ où aucune case n'a de couleur. En un mouvement, il peut choisir une ligne ou une colonne et repeindre toutes les cases de celle-ci avec une couleur de son choix (notez que cela lui donne plus de liberté que dans le jeu présenté sur les images ci-dessus, où les lignes et les colonnes avaient des couleurs imposées). Pour formaliser un peu le problème, il a désigné toutes les couleurs par des lettres majuscules de l'alphabet anglais. Pouvez-vous l'aider et écrire un programme qui, pour chaque grille qu'il propose, donne une séquence de mouvements qui crée correctement la disposition des couleurs cible ? Vous pouvez supposer que les données d'entrée fournies permettent d'atteindre cet objectif en au plus $n + m$ mouvements.

Entrée

La première ligne de l'entrée standard contient deux entiers $n$ et $m$ ($1 \le n, m \le 2\,000$), représentant respectivement la hauteur et la largeur de la grille.

Chacune des $n$ lignes suivantes contient $m$ caractères, chacun étant une lettre majuscule de l'alphabet anglais ; le $j$-ième caractère de la $i$-ième ligne indique la couleur cible de la case située dans la $i$-ième ligne et la $j$-ième colonne de la grille.

Il est garanti que la disposition des couleurs donnée peut être atteinte par une séquence d'au plus $n+m$ mouvements décrits dans l'énoncé du problème.

Sortie

La première ligne de la sortie doit contenir un entier $r$ ($1 \le r \le n+m$), représentant le nombre de mouvements que vous souhaitez effectuer. Chacune des $r$ lignes suivantes doit contenir la description d'un mouvement.

La description d'un mouvement doit commencer par le caractère 'R' ou 'K', indiquant si vous souhaitez repeindre une ligne ou une colonne (où, bien sûr, 'R' signifie ligne et 'K' signifie colonne). Ensuite, après un espace, doit se trouver le numéro de la ligne ou de la colonne que vous souhaitez repeindre. Les lignes sont numérotées de haut en bas de $1$ à $n$, et les colonnes de gauche à droite de $1$ à $m$. Ensuite, après un espace, doit se trouver une lettre majuscule de l'alphabet anglais, indiquant la couleur avec laquelle vous souhaitez repeindre la ligne ou la colonne choisie.

Notez que vous n'avez pas besoin de minimiser le nombre de mouvements – il suffit d'en effectuer au plus $n + m$.

Exemples

Entrée 1

5 5
AAPAA
APPAA
AAPAA
AAPAA
APPPA

Sortie 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

Entrée 2

2 3
AAA
PPP

Sortie 2

2
R 2 P
R 1 A

Remarque

Explication de l'exemple : Si dans le premier test d'exemple nous supposons que la lettre 'P' représente la couleur verte, la lettre 'A' représente la couleur jaune, et la lettre 'Z' représente la couleur bleue, alors la séquence de mouvements choisie peint la grille de la manière suivante :

Figure 1. Illustration of the grid coloring process

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.