Einführung
Meine Nichte will eine Rennstrecke bauen. Sie hat Holzteile, die zusammenpassen, um die Spur zu bilden. Jedes Teil ist quadratisch und enthält eine andere Form. Ich werde die Rohrzeichen verwenden, um Folgendes zu veranschaulichen:
│
: die Straße, die vertikal verläuft─
: die Straße, die horizontal verläuft┌
┐
└
┘
: die Straßen, die sich in eine Richtung drehen┼
: Eine Brücke mit einer Unterführung
Seltsamerweise gibt es keine T-Stücke.
Hier ist ein Beispiel für eine mögliche Rennstrecke:
┌─┐
│ │┌─┐
│ └┼─┘
└──┘
Die Regeln für eine gültige Rennstrecke lauten wie folgt:
- Es kann keine Straßen geben, die ins Nirgendwo führen.
- Es muss eine Schleife bilden (und alle Teile müssen Teil derselben Schleife sein).
- An den Brücken / Unterführungen kann man nicht abbiegen (also muss man sie gerade durchfahren).
Leider sind die Rennstreckenstücke, die meine Nichte und ich haben, begrenzt. Aber wir wollen auf jeden Fall alle in der Strecke verwenden. Schreiben Sie ein Programm , das anhand einer Liste der Teile in unserem Inventar eine Rennbahn ausgibt, auf der alle Teile verwendet werden.
Eingabebeschreibung
Wir möchten, dass die Eingabe über STDIN, Befehlszeilenargumente, das Lesen von Dateien oder eine Benutzereingabefunktion (wie z. B. raw_input
oder prompt
) erfolgt. Die Eingabe erfolgt durch Kommas getrennte positive Ganzzahlen in der Form
│,─,┌,┐,└,┘,┼
wo jedes von denen die Menge dieses bestimmten Stückes darstellt, das wir haben. So zum Beispiel die Eingabe:
1,1,1,1,1,1,1
würde bedeuten, dass wir eines von jedem Stück hatten.
Ausgabebeschreibung
Geben Sie eine Rennstrecke mit den oben aufgeführten Rohrzeichen aus. Die Rennstrecke sollte genau die Nummer jedes in der Eingabe angegebenen Stücks verwenden - nicht mehr und nicht weniger. Für jede Eingabe gibt es mindestens eine gültige Rennstrecke.
Beispiel Ein- und Ausgänge
Eingang: 3,5,2,2,2,2,1
Eine mögliche Ausgabe:
┌─┐
│ │┌─┐
│ └┼─┘
└──┘
Eingang: 0,0,1,4,4,1,3
Eine mögliche Ausgabe:
┌┐
└┼┐
└┼┐
└┼┐
└┘