Ihre Aufgabe ist es, 0-9anhand eines quadratischen Ziffernrasters ( ) eine der Möglichkeiten auszugeben, mit denen die Ziffern so gruppiert werden können, dass:
- Jede Ziffer gehört zu genau einer Gruppe
- Alle Gruppen haben die gleiche Anzahl von Ziffern
- Alle Gruppen sind durch eine polygonartige Form begrenzt (dies bedeutet, dass jede Ziffer in der Gruppe neben [links, rechts, oben, unten] mindestens eine weitere Ziffer derselben Gruppe steht, es sei denn, jede Gruppe verfügt über 1 Element).
- Alle Gruppen haben die gleiche Summe
Das Eingaberaster ist immer ein Quadrat: Sie können eine beliebige Eingabemethode auswählen (einschließlich der Angabe von Argumenten für eine Funktion oder Methode). Zusätzlich liefert der Eingang die Anzahl der Gruppen, in denen Ihr Programm die Ziffern gruppieren soll.
Beispiel Eingabe:
Angenommen, Ihr Eingabeformat ist stringOfDigits numberOfGroups .
Ein Beispiel für eine Eingabe wäre:
156790809 3
was sich in (ein Gitter aus sqrt(9) * sqrt(9)) übersetzen würde
1 5 6
7 9 0
8 0 9
Die müssten Sie in 3 Gruppen aufteilen, von denen jede 9 / 3 = 3Elemente mit der gleichen Summe haben sollte.
Ausgabe: Die Ausgabe sollte eine Ziffernfolge mit optionalen Leerzeichen und Zeilenumbrüchen für die Formatierung sein, wobei jeder Ziffer ein Buchstabe folgt a-z, der die Gruppe angibt. numberOfTotalDigits / numberOfGroupsIn jeder Gruppe sollten genau Elemente vorhanden sein. Sie müssen niemals etwas in mehr als 26 Gruppen aufteilen.
Beispielausgabe:
1a 5a 6b
7c 9a 0b
8c 0c 9b
Beachten Sie, dass das Ersetzen aller as durch bs und bs durch as gleichermaßen gültig ist. Solange jede Gruppe mit einem eigenen Buchstaben gekennzeichnet ist, ist die Ausgabe gültig.
Außerdem erwarte ich, dass die meisten Programme etwas in dieser Richtung ausgeben, da Zeilenumbrüche / Leerzeichen optional sind:
1a5a6b7c9a0b8c0c9b
In diesem Fall wird die Addition aller Ziffern der Gruppe a, boder cmacht 15. Darüber hinaus werden alle Gruppen durch ein Polygon gebunden.
Ungültige Ausgaben:
1a 5a 6b
7c 9a 0c
8c 0b 9b
weil die gruppen keine polygone bilden (genauer gesagt, die 6bsind isoliert und 0cauch einsam).
1a 5a 6b
7c 9a 0b
8c 0b 9b
weil die Gruppe b4 Elemente hat, während cnur 2.
Etc.
Wenn es keine gültige Lösung gibt, kann Ihr Programm alles tun (z. B. anhalten, abstürzen, für immer ausführen), aber wenn Ihr Programm druckt, Nonewenn es keine gültige Lösung gibt -15, wird dies Ihrem Ergebnis gerecht.
Wenn es mehr als eine Lösung gibt, müssen Sie nur eine drucken, aber -20wenn Ihr Programm alle durch ein Trennzeichen voneinander getrennt druckt.
Dies ist Codegolf, also gewinnt der kürzeste Code (mit Boni)!
156790889 3Es scheint so, als sollte es so sein156790809 3
6bist isoliert, nicht das0b.