Вертолет, стартующий в верхнем левом углу, спускается (в двумерном пространстве для целей этого вопроса) к земле. Имеет режим автопилота и ручной режим.
Режим автопилота ведет себя следующим образом:
- Если пространство прямо внизу свободно, спускайтесь к нему.
- В противном случае переместите шаг влево или вправо, совершенно случайно. (Это может сделать несколько шагов таким образом.)
И он продолжает повторять эти два шага, пока не упадет на землю. Ручной режим более интеллектуален и найдет оптимальный путь к земле, даже если для этого потребуется движение вверх или какое-то умелое маневрирование.
Ваша задача - определить,
- Автопилот пройдет по заданному сценарию,
- Автопилот может дать сбой в данном сценарии,
- Автопилот не удастся, но ручной режим пройдет, или
- Оба режима потерпят неудачу (нет действительного пути к земле).
вход
- Данный сценарий представляет собой непустой массив 1d или 2d, использующий два разных символа для представления свободных и заблокированных пространств. Пунктуация необязательна.
- Необязательно: размеры массива
Вывод
Один из четырех предопределенных символов, указывающих, какой из случаев произошел.
Образец данных
Используя 0 (пусто) и 1 (заблокировано) на входе, 1 2 3 4 на выходе (как указано выше)
0 0 0 0
0 1 0 0
0 0 0 1
1 1 0 0
Вывод: 1
0 0 1 0
1 0 0 1
0 0 0 0
0 1 1 0
0 0 0 1
Вывод: 2
(Вертолет встретит 1 в четвертом ряду, и, возможно, он окажется в конце 5-го ряда, если находится в режиме автопилота)
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
Вывод: 3
(Это требует движения вверх, поэтому автопилот не работает)
1 0 0
0 0 0
Вывод: 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
Вывод: 4
источник
Ответы:
Рубин, 259
Мне было очень весело с этим. Спасибо! Сетка задач, как правило, очень весело с интересными задачами. Это предполагает, что «символы» в вопросе могут быть целыми числами.
Я думаю, что основные моменты улучшения здесь:
r
Ungolfed (немного устаревший, но очень близко):
источник