Johnny versucht Kreuzworträtsel zu erstellen, aber er hat Schwierigkeiten, Wörter aufeinander abzustimmen.
Er hat sich mehrere einfache Wortrechtecke ausgedacht: dh Wortgruppen, die ein Rechteck bilden, wobei alle horizontalen und vertikalen Pfade ein Wort bilden.
//2x2
PA
AM
//2x3
GOB
ORE
//3x3
BAG
AGO
RED
//3x4
MACE
AGES
WEES
Um ein gutes Puzzle zu erstellen, benötigt er jedoch einige Wortrechtecke, die etwas größer als 3x4 sind. Anstatt sich stundenlang über die Arrangement-Briefe zu quälen, würde Johnny es vorziehen, ein Programm zu haben, das dies für ihn erledigt - und zwar in möglichst wenigen Zeichen, da lange Codeblöcke für Gelegenheitsprogrammierer wie Johnny äußerst einschüchternd sind.
Gegeben
- ein Textdatei- Wörterbuch, in dem Wörter durch Zeilenumbrüche in alphabetischer Reihenfolge getrennt sind;
- Eingabe unter Angabe der Anzahl der Zeilen und Spalten im Wortrechteck (die bereitgestellt werden kann, ist jedoch in der Programmiersprache Ihrer Wahl am bequemsten)
Generieren Sie mindestens ein Wortrechteck. Wenn es nicht möglich ist, ein Wortrechteck mit dem angegebenen Lexikon und den angegebenen Dimensionen zu generieren, muss das Programm kein definiertes Verhalten haben. Es ist nicht erforderlich, dass das Programm Rechtecke mit mehr als 64 Buchstaben oder Abmessungen von mehr als 8 in beide Richtungen generieren kann. Das Programm sollte in angemessener Zeit abgeschlossen sein können, beispielsweise in 30 Minuten oder weniger.
BEARBEITEN: Wenn Sie ein NxN-Rechteck erstellen, dürfen Sie eine kleinere Wörterbuchdatei verwenden, die nur Wörter mit einer Länge von N Buchstaben enthält.