QOJ.ac

QOJ

Time Limit: 6 s Memory Limit: 256 MB Total points: 100

#21184. Um touro numa loja de porcelana

Statistics

Farmer John quer decorar melhor a casa. Em uma loja de porcelana encontra uma delicada estatueta de vaca de vidro e decide comprá-la para a prateleira sobre a lareira.

A forma é uma grade de $N \times M$ caracteres ($3 \leq N, M \leq 500$), como abaixo. Letras minúsculas são partes de cores diferentes da estatueta; . não faz parte dela.

...............
...............
x..x...........
xxxx...........
xxxxaaaaaaa...
.xx.aaaaaaaaa..
....aaaaaaa.aa.
....ll...ll....
....vv...vv....
...............

Antes da compra, um touro passa pela loja e quebra a estatueta e muitos outros objetos de vidro nas prateleiras! Ela se parte em 3 peças, perdidas entre $K$ peças no chão ($4 \leq K \leq 100$). Cada uma das $K$ peças é descrita por uma grade como a original.

Conte os conjuntos de 3 peças dentre as $K$ que podem ser colados para reconstruir a estatueta.

As peças podem ter sido viradas vertical ou horizontalmente ou giradas por um múltiplo de 90 graus. Com a original e as $K$ grades, procure conjuntos de 3 que formem a imagem, permitindo translações, reflexões e rotações múltiplas de 90 graus. Sobrepostas, as 3 peças devem formar exatamente a original, com cada célula colorida representada em exatamente uma peça.

Entrada

A primeira linha contém $K$. Seguem $K + 1$ descrições: a primeira é a estatueta original e as próximas $K$ são as peças.

Cada descrição começa com $R$ e $C$ ($1 \le R, C \le 100$). As próximas $R$ linhas contêm $C$ minúsculas descrevendo as cores. Cada peça é conexa por adjacência horizontal ou vertical e tem pelo menos uma célula não vazia.

Saída

Imprima o número de triplas $i, j, k$ ($i < j < k$) em que as peças $i$, $j$ e $k$ formam a vaca original.

Exemplos

Entrada 1

5
5 5
aaaaa
..a..
bbabb
..a..
aaaaa
3 5
..abb
..a..
aaaaa
5 2
a.
a.
aa
a.
a.
1 2
bb
1 5
bbabb
2 5
aaaaa
..a..

Saída 1

3

Explicação

As três soluções usam $(0, 1, 2)$, $(0, 2, 4)$ e $(1, 3, 4)$.

O limite de tempo é de 6 segundos por caso de teste e o dobro para Java e Python.

Autor: Brian Dean

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.