In Chinese Checkers kann sich eine Figur bewegen, indem sie über eine beliebige andere Figur springt oder eine Folge solcher Sprünge macht. Ihre Aufgabe ist es, eine möglichst lange Abfolge von Hopfen zu finden.
Eingang
Eine Folge von 121 Nullen oder Einsen, die jeweils einen Platz auf einer Tafel darstellen. Eine Null bedeutet, dass der Ort leer ist. Eine Eins bedeutet, dass der Platz besetzt ist. Die Positionen sind von links nach rechts aufgelistet. oben nach unten. Zum Beispiel kann die Eingabe dieser Einstellung wäre
1011110011000001000000000000000000000000100000000001000000000000000000000000000001000000000000000000000001000001100111111
Erläuterung:
Der oberste Platz wird von einem grünen Stück belegt, die erste Ziffer in der Eingabe ist also
1
. Die zweite Reihe hat eine leere Position und dann eine besetzte Position, also01
kommt als nächstes. Die dritte Reihe ist alle besetzt, also111
. Die vierte Reihe hat zwei leere und zwei belegte Felder (von links nach rechts), also0011
. Dann kommen fünf0
, a1
und sieben0
für die nächste Reihe und so weiter.
Wie in dieser Konfiguration gibt es eine Ecke, die gerade nach oben zeigt. Es können beliebig viele Teile auf dem Brett liegen (von 1 bis 121). Beachten Sie, dass Stücke unterschiedlicher Farben nicht unterschiedlich dargestellt werden.
Ausgabe
Die maximale Länge eines legalen Hops, bei dem ein beliebiges Stück auf dem Brett verwendet wird. Sie dürfen denselben Ort nicht mehr als einmal besuchen (einschließlich der Start- und Endpositionen). Sie können jedoch mehr als einmal über dasselbe Stück springen. Wenn es keinen legalen Hop gibt, wird ausgegeben 0
. Überlegen Sie nicht, ob es einen legalen Non-Hop-Move gibt.
Die Ausgabe an das oben beschriebene Setup lautet beispielsweise 3
.
Die Ein- und Ausgabe kann über stdin und stdout, über Befehlszeilenargumente, über Funktionsaufrufe oder eine ähnliche Methode erfolgen.
Testfälle
Eingang:
0100000010000000000000000100000000000000000000000000000001010010000000000000000000000101000000000000000000100000000100001
Ausgabe: 0
(keine zwei Stücke liegen nebeneinander)
Eingang:
0000000000111100000000011100000000011000000000100000000000000000000000000000000000000000000000000000000000000000000000000
Ausgabe: 1
(Ersteinrichtung für einen Spieler in der oberen linken Ecke)