introduction
Ma nièce veut faire une piste de course. Elle a des pièces en bois qui s'assemblent pour former la piste. Chaque pièce est de forme carrée et contient une forme différente. Je vais utiliser les caractères de dessin de tuyau pour illustrer:
│
: la route qui va verticalement─
: la route qui va horizontalement┌
┐
└
┘
: les routes qui tournent dans une direction┼
: Un pont avec un passage souterrain
Curieusement, il n'y a pas de pièces de jonction en T.
Voici un exemple de piste de course possible:
┌─┐
│ │┌─┐
│ └┼─┘
└──┘
Les règles pour une piste de course automobile valide sont les suivantes:
- Il ne peut y avoir de routes qui ne mènent nulle part.
- Il doit former une boucle (et toutes les pièces doivent faire partie de la même boucle).
- Aux ponts / passages souterrains, vous ne pouvez pas tourner (vous devez donc les traverser directement).
Malheureusement, les morceaux de piste de voiture de course que ma nièce et moi avons sont limités. Mais nous voulons vraiment les utiliser tous sur la piste. Écrivez un programme qui, étant donné une liste des pièces qui sont dans notre inventaire, génère une piste de voiture de course qui utilise toutes ces pièces.
Description de l'entrée
Nous aimerions que l'entrée entre via STDIN, des arguments de ligne de commande, la lecture de fichier ou une fonction d'entrée utilisateur (comme raw_input
ou prompt
). L'entrée est des entiers positifs séparés par des virgules sous la forme
│,─,┌,┐,└,┘,┼
où chacun représente le montant de cette pièce particulière que nous avons. Ainsi, par exemple, l'entrée:
1,1,1,1,1,1,1
signifierait que nous avions un de chaque morceau.
Description de la sortie
Sortez une piste de course en utilisant les caractères de dessin de tuyaux répertoriés ci-dessus. La piste de course devrait utiliser exactement le nombre de chaque pièce spécifié dans l'entrée - ni plus, ni moins. Il y aura au moins une piste de course valide pour chaque entrée.
Exemples d'entrées et de sorties
Contribution: 3,5,2,2,2,2,1
Une sortie possible:
┌─┐
│ │┌─┐
│ └┼─┘
└──┘
Contribution: 0,0,1,4,4,1,3
Une sortie possible:
┌┐
└┼┐
└┼┐
└┼┐
└┘