QOJ.ac

QOJ

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

#8679. Ladrilhos inclinados

Statistics

Você encontrou um quebra-cabeça estranho em uma caixa de brinquedos antigos no sótão. Ele forma um tabuleiro retangular composto por $h \times w$ células quadradas. Algumas células têm um ladrilho colorido sobre elas, como mostra a Figura F.1.

problem_8679_141bfaa0ba0c1196198d6deee1100655.png

Figura F.1: Os ladrilhos coloridos correspondem à disposição inicial da Entrada de Exemplo 1.

Você ainda não sabe qual é o objetivo exato do quebra-cabeça, mas começou a examinar maneiras de reorganizar os ladrilhos. A disposição pode ser alterada inclinando o tabuleiro em uma das quatro direções principais: para sua esquerda, para sua direita, em sua direção ou para longe de você. Ao inclinar, todos os ladrilhos deslizam na direção correspondente até serem bloqueados pela borda ou por outro ladrilho. Dadas uma disposição inicial e uma final, determine se existe alguma sequência de inclinações que transforma a primeira na segunda. A Figura F.2 ilustra as inclinações do quebra-cabeça da Entrada de Exemplo 1.

problem_8679_eb20e1509cd290b03249b30fb584f1df.png

Figura F.2: Solução da Entrada de Exemplo 1.

Entrada

A primeira linha contém dois inteiros $h$ e $w$ ($1 \le h,w \le 500$), representando a altura e a largura do tabuleiro. Seguem $h$ linhas que fornecem a disposição inicial da linha superior à inferior. Cada uma contém uma string de comprimento $w$ descrevendo as células da esquerda para a direita. Uma célula vazia é indicada por um ponto (.). Se houver um ladrilho, sua cor é indicada por uma letra minúscula (a-z). Letras diferentes representam cores diferentes, e ladrilhos da mesma cor são indistinguíveis.

Após a disposição inicial, há uma linha vazia e então a descrição da disposição final, composta por $h$ linhas no mesmo formato.

Saída

Imprima yes se existir uma sequência de inclinações que transforma a disposição inicial na final, e no caso contrário.

Exemplos

Entrada 1

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

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

Saída 1

yes

Entrada 2

1 7
....x..

..x....

Saída 2

no

Entrada 3

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

...
..b
.ry
byb

Saída 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.