introduction
Arithmetic Gaol est une installation spéciale qui incarcère des nombres entiers positifs. Cependant, récemment, les nombres entiers positifs ont tenté de s'échapper. Les gardiens ont donc décidé, euh, d' éliminer certains des entiers positifs pour envoyer un message aux autres entiers. Ils ont embauché un ingénieur logiciel pour écrire un programme afin de déterminer les entiers à éliminer pour un effet maximal.
Description de l'entrée
L'entrée est donnée via STDIN, des arguments de ligne de commande ou une fonction d'entrée utilisateur (telle que raw_input
). Vous ne pouvez pas l'avoir comme argument de fonction ou comme variable préinitialisée (par exemple, ce programme attend l'entrée dans une variable x
).
La première ligne d'entrée contient un seul entier positif n
où 8 >= n >= 3
. Les n
lignes suivantes contiennent des n
caractères de l'ensemble [1,2,3,4,5,6,7,8,9]
. Voici un exemple d'entrée:
5
22332
46351
65455
24463
65652
Description de la sortie
Les gardiens souhaitent supprimer les numéros afin que les conditions suivantes soient remplies:
- Dans chaque ligne et colonne de la grille résultante, aucun nombre n'apparaîtra deux fois;
- Aucun nombre éliminé ne peut être adjacent horizontalement ou verticalement;
- Les nombres survivants doivent former un groupe contigu orthogonalement - il sera possible de voyager de n'importe quel nombre survivant à n'importe quel autre nombre survivant se déplaçant seulement horizontalement et verticalement et ne traversant jamais aucun nombre éliminé.
Sortez l'entrée (moins la première ligne), avec les nombres éliminés remplacés par #
.
Il peut y avoir plusieurs solutions. Si tel est le cas, vous pouvez générer n'importe quelle solution.
Il peut également n'y avoir aucune solution. Si tel est le cas, sortez la chaîne no answer
.
Voici une sortie possible pour l'exemple d'entrée:
#2#3#
46351
6#4#5
24#63
#56#2
Exemples d'entrées et de sorties
Il y a plusieurs sorties pour chaque entrée, donc ces sorties ne sont que des exemples.
Contribution:
5
46551
51565
32654
14423
43244
Sortie:
46#51
#156#
326#4
1#423
#324#
Contribution:
7
7183625
1681563
5238564
8786268
1545382
3814756
5325345
Sortie:
71#362#
#6815#3
5238#64
#7#62#8
154#382
3814756
#325#4#
Contribution:
8
21534768
75196287
68392184
96244853
44865912
76516647
89751326
43698979
Sortie:
21#34768
#5196287
683#21#4
9#24#853
#4865912
7#51#64#
89751326
436#8#7#
Contribution:
4
2222
2331
3112
1322
Sortie:
no answer
prompt
ne permet pas la saisie sur plusieurs lignes.