QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 2048 MB Total points: 100

#8679. Tuiles inclinées

Statistics

Vous avez trouvé un étrange casse-tête dans une boîte de vieux jouets au grenier. Il forme un plateau rectangulaire composé de $h \times w$ cases carrées. Certaines cases portent une tuile colorée, comme le montre la figure F.1.

problem_8679_141bfaa0ba0c1196198d6deee1100655.png

Figure F.1 : Les tuiles colorées correspondent à la disposition initiale de l'entrée d'exemple 1.

Vous ne connaissez pas encore le but exact du casse-tête, mais vous avez commencé à étudier les façons de réorganiser les tuiles. On peut modifier leur disposition en inclinant le plateau dans l'une des quatre directions principales : vers votre gauche, vers votre droite, vers vous ou à l'opposé de vous. Toutes les tuiles glissent alors dans la direction correspondante jusqu'à être bloquées par le bord ou une autre tuile. Étant données une disposition initiale et une finale, déterminez s'il existe une suite d'inclinaisons transformant la première en la seconde. La figure F.2 illustre les inclinaisons du casse-tête de l'entrée d'exemple 1.

problem_8679_eb20e1509cd290b03249b30fb584f1df.png

Figure F.2 : Solution de l'entrée d'exemple 1.

Entrée

La première ligne contient deux entiers $h$ et $w$ ($1 \le h,w \le 500$), représentant la hauteur et la largeur du plateau. Suivent $h$ lignes donnant la disposition initiale de la rangée du haut à celle du bas. Chacune contient une chaîne de longueur $w$ décrivant les cases de gauche à droite. Une case vide est représentée par un point (.). S'il y a une tuile, sa couleur est donnée par une lettre minuscule (a-z). Des lettres différentes représentent des couleurs différentes, et les tuiles de même couleur sont indiscernables.

Après la disposition initiale, il y a une ligne vide, puis la description de la disposition finale, composée de $h$ lignes dans le même format.

Sortie

Affichez yes s'il existe une suite d'inclinaisons transformant la disposition initiale en la disposition finale, et no sinon.

Exemples

Entrée 1

4 4
.r..
rgyb
.b..
.yr.

yrbr
..yr
...g
...b

Sortie 1

yes

Entrée 2

1 7
....x..

..x....

Sortie 2

no

Entrée 3

4 3
yr.
..b
ry.
b..

...
..b
.ry
byb

Sortie 3

no

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.