Sie sollten ein Programm oder eine Funktion schreiben, die eine Zeichenfolge empfängt, die den Boden als Eingabe und Ausgabe beschreibt, oder den Bereich der einfachsten Meta-Kacheln zurückgibt, die das gegebene Muster des Bodens erzeugen könnten.
Der Boden ist Teil eines quadratischen Gitters. Jede quadratische Kachel ist entweder azurblau oder schwarz gefärbt (dargestellt durch a
und b
in der Eingabe).
Ein Beispielboden:
aaaa
ababab
aaaaa
Eine Meta-Kachelung
- wird von einem eingebauten
N
vonM
rechteckiger meta-Kachel von himmelblau und schwarzen Quadraten - Die verwendeten Meta-Kacheln sind bis zur Übersetzung identisch (Sie können sie nicht drehen oder spiegeln).
- Wenn die Seiten von zwei Meta-Kacheln verbunden sind, sollten sie sich über ihre gesamte Länge verbinden (dh Meta-Kacheln kacheln den Raum gitterartig).
Ein Beispiel für eine Meta-Kachel:
ba
aa
und die von ihm erstellten Meta-Kacheln:
.
.
.
babababa
aaaaaaaa
... babababa ...
aaaaaaaa
babababa
aaaaaaaa
.
.
.
Diese Meta-Kacheln erzeugen das obere angezeigte Stockwerk, wie die linken Buchstaben zeigen:
.
.
.
********
***aaaa*
... *ababab* ...
*aaaaa**
********
********
.
.
.
Eine Meta-Kachelung ist einfacher als eine andere, wenn der Bereich ihrer Meta-Kachelung kleiner ist. Unser Beispiel hat eine Fläche, 2*2 = 4
die für den Beispielboden so klein wie möglich ist. Die Ausgabe sollte also 4
für das Beispiel sein.
Eingang
- Eine Zeichenfolge, die aus den Zeichen besteht
a b space
undnewline
mindestens eina
oder enthältb
. - Die Buchstaben (
ab
) bilden eine 4-verbundene (nebeneinander verbundene) Form. - Es gibt keine unnötigen Leerzeichen an der Vorderseite der Zeilen, dh es gibt mindestens eine Zeile, die mit
a
oder beginntb
. Sie können zwischen zwei Eingabeformaten wählen:
- Kein unnötiges Leerzeichen am Ende der Zeilen (wie in den Beispielen gezeigt).
- Leerzeichen auf der rechten Seite der Zeilen, damit alle Zeilen dieselbe Länge wie die längste Zeile haben.
Nachgestellte Zeilenumbrüche sind optional.
Ausgabe
- Eine einzelne Ganzzahl, die Fläche der kleinstmöglichen Meta-Kachel, deren Kachel die Eingabeetage enthält.
Beispiele
Beispiele werden durch Bindestriche begrenzt. Die drei Teile eines Beispiels sind Eingabe, Ausgabe und eine der möglichen kleinsten Meta-Kacheln.
a
1
a
-----------------
aaaa
aaa
a
1
a
-----------------
aabaab
abaa
aaba
6
aab
aba
-----------------
aabaab
a a a
aabab
18
aabaab
aaaaaa
aababa
-----------------
ba
aaab
8
baaa
aaab
-----------------
aaaa
ababb
aaaa
10
aaaaa
ababb
-----------------
a aa
ab ba
aba
6
aa
ab
ba
-----------------
aaaa
abab
aaaa
4
aa
ab
-----------------
ba
ba
b
4
ba
ab
-----------------
baa
aba
aab
9
baa
aba
aab
-----------------
aaaa
aabaa
aaaa
6
aaa
aab
Dies ist Code Golf, so dass der kürzeste Eintrag gewinnt.