Votre tâche consiste, étant donné une grille carrée de chiffres ( 0-9), à sortir l'une des façons dont les chiffres peuvent être regroupés de telle sorte que:
- Chaque chiffre fait partie d'un groupe exactement
- Tous les groupes ont le même nombre de chiffres
- Tous les groupes sont délimités par une forme semblable à un polygone (cela signifie que chaque chiffre du groupe est à côté de [gauche, droite, haut, bas] au moins un autre chiffre du même groupe, sauf si chaque groupe a 1 élément).
- Tous les groupes ont la même somme
La grille d'entrée sera toujours un carré: vous pouvez choisir n'importe quelle méthode d'entrée que vous souhaitez (y compris fournir des arguments à une fonction ou une méthode). De plus, l'entrée fournira le nombre de groupes dans lesquels votre programme doit regrouper les chiffres.
Exemple d'entrée:
Supposons que votre format d'entrée soit stringOfDigits numberOfGroups.
Un exemple d'entrée serait:
156790809 3
qui se traduirait par (une grille de sqrt(9) * sqrt(9))
1 5 6
7 9 0
8 0 9
que vous auriez à diviser en 3 groupes, dont chacun devrait avoir des 9 / 3 = 3éléments avec la même somme.
Sortie: La sortie doit être une chaîne de chiffres, avec des espaces optionnels et des retours à la ligne pour le formatage, chaque chiffre suivi d'une lettre a-zindiquant son groupe. Il devrait y avoir exactement des numberOfTotalDigits / numberOfGroupséléments dans chaque groupe. Vous n'aurez jamais à diviser quelque chose en plus de 26 groupes.
Exemple de sortie:
1a 5a 6b
7c 9a 0b
8c 0c 9b
Notez que remplacer tous les as par bs et bs par as est également valable. Tant que chaque groupe est désigné par une lettre distincte, la sortie est valide.
De plus, je m'attends à ce que la plupart des programmes produisent quelque chose du genre, car les sauts de ligne / espaces sont facultatifs:
1a5a6b7c9a0b8c0c9b
Dans ce cas, l'ajout de tous les chiffres du groupe a, bou cfait 15. De plus, tous les groupes sont liés par un polygone.
Sorties non valides:
1a 5a 6b
7c 9a 0c
8c 0b 9b
parce que les groupes ne forment pas de polygones (en particulier, le 6best isolé et 0cest également solitaire).
1a 5a 6b
7c 9a 0b
8c 0b 9b
parce que le groupe ba 4 éléments alors qu'il cn'en a que 2.
Etc.
S'il n'y a pas de solution valide, votre programme peut faire n'importe quoi (c'est-à-dire arrêter, planter, s'exécuter indéfiniment) mais si votre programme imprime Nonelorsqu'il n'y a pas de solution valide, -15à votre score.
S'il existe plusieurs solutions, il vous suffit d'en imprimer une, mais -20si votre programme les imprime toutes séparées par un délimiteur.
C'est le golf de code, donc le code le plus court (avec des bonus) gagne!
156790889 3semble que cela devrait être156790809 3
6best isolé, pas le0b.