Ein Hubschrauber, der in der oberen linken Ecke startet, senkt sich (in einem 2D-Raum für die Zwecke dieser Frage) in Richtung Boden. Es verfügt über einen Autopilot-Modus und einen manuellen Modus.
Der Autopilot-Modus verhält sich wie folgt:
- Wenn der Platz direkt darunter frei ist, steigen Sie dorthin ab.
- Bewegen Sie andernfalls einen Schritt nach links oder rechts, völlig zufällig. (Auf diese Weise können mehrere Schritte verschoben werden.)
Und es wiederholt diese beiden Schritte so lange, bis es auf dem Boden aufschlägt. Der manuelle Modus ist intelligenter und findet den optimalen Weg zum Boden, selbst wenn dies eine Aufwärtsbewegung oder ein geschicktes Manövrieren erfordert.
Ihre Aufgabe ist es festzustellen, ob
- Der Autopilot wird im gegebenen Szenario passieren,
- Der Autopilot kann im angegebenen Szenario fehlschlagen.
- Der Autopilot schlägt fehl, aber der manuelle Modus wird bestanden, oder
- Beide Modi schlagen fehl (es gibt keinen gültigen Pfad zum Boden).
Eingang
- Gegebenes Szenario als nicht leeres 1d- oder 2d-Array, wobei zwei verschiedene Zeichen verwendet werden, um freie und blockierte Leerzeichen darzustellen. Zeichensetzung optional.
- Optional: Abmessungen des Arrays
Ausgabe
Eines von vier vordefinierten Zeichen, die angeben, welcher der Fälle aufgetreten ist.
Beispieldaten
Verwenden Sie 0 (leer) und 1 (blockiert) in der Eingabe, 1 2 3 4 in der Ausgabe (wie oben nummeriert)
0 0 0 0
0 1 0 0
0 0 0 1
1 1 0 0
Ausgabe: 1
0 0 1 0
1 0 0 1
0 0 0 0
0 1 1 0
0 0 0 1
Ausgabe: 2
(Der Hubschrauber trifft auf die 1 in der vierten Reihe, und es ist möglich, dass er sich am Ende der Reihe 5 einfängt, wenn er sich im Autopilot-Modus befindet.)
0 0 0 1 0
0 1 1 0 0
0 1 0 0 0
0 0 0 1 0
1 1 1 1 0
Ausgabe: 3
(Dies erfordert eine Aufwärtsbewegung, damit der Autopilot ausfällt.)
1 0 0
0 0 0
Ausgabe: 4
0 0 0 0 1
1 1 1 0 0
1 0 0 1 0
0 1 0 0 0
0 0 1 1 1
Ausgabe: 4