QOJ.ac

QOJ

Süre Sınırı: 3 s Bellek Sınırı: 2048 MB Toplam puan: 100

#8679. Kippende Kacheln

İstatistikler

Du hast in einer Kiste mit altem Spielzeug auf dem Dachboden ein seltsames Rätsel gefunden. Es besteht aus einem rechteckigen Spielbrett mit $h \times w$ quadratischen Feldern. Auf manchen Feldern liegt eine farbige Kachel, wie Abbildung F.1 zeigt.

problem_8679_141bfaa0ba0c1196198d6deee1100655.png

Abbildung F.1: Die farbigen Kacheln entsprechen der Startanordnung aus Beispieleingabe 1.

Du weißt noch nicht genau, was das Ziel dieses Rätsels ist, hast aber begonnen, mögliche Umordnungen der Kacheln zu untersuchen. Die Anordnung lässt sich ändern, indem du das Brett in eine der vier Hauptrichtungen kippst: nach links, nach rechts, zu dir hin oder von dir weg. Dabei rutschen alle Kacheln in die entsprechende Richtung, bis sie vom Rand oder einer anderen Kachel aufgehalten werden. Bestimme für eine gegebene Start- und Endanordnung, ob eine Folge von Kippbewegungen die erste in die zweite überführt. Abbildung F.2 zeigt das Kippen des Rätsels aus Beispieleingabe 1.

problem_8679_eb20e1509cd290b03249b30fb584f1df.png

Abbildung F.2: Lösung zu Beispieleingabe 1.

Eingabe

Die erste Zeile enthält zwei ganze Zahlen $h$ und $w$ ($1 \le h,w \le 500$), die Höhe und Breite des Bretts angeben. Es folgen $h$ Zeilen mit der Startanordnung von der obersten bis zur untersten Reihe. Jede Zeile enthält eine Zeichenkette der Länge $w$, die die Felder von links nach rechts beschreibt. Ist ein Feld leer, steht dort ein Punkt (.). Liegt dort eine Kachel, wird ihre Farbe durch einen Kleinbuchstaben (a-z) angegeben. Verschiedene Buchstaben bezeichnen verschiedene Farben, und gleichfarbige Kacheln sind nicht unterscheidbar.

Nach der Startanordnung folgt eine Leerzeile und dann die Endanordnung, bestehend aus $h$ Zeilen im gleichen Format.

Ausgabe

Gib yes aus, wenn eine Folge von Kippbewegungen die Startanordnung in die Endanordnung überführt, andernfalls no.

Beispiele

Eingabe 1

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

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

Ausgabe 1

yes

Eingabe 2

1 7
....x..

..x....

Ausgabe 2

no

Eingabe 3

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

...
..b
.ry
byb

Ausgabe 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.