field: 0 — свободная клетка, 1 — стена. Края поля тоже работают как стены. В клетке start лежит шарик, в клетке hole — лунка.
Шарик можно толкнуть вверх (u), вниз (d), влево (l) или вправо (r). Он катится в этом направлении, пока не упрётся в стену или край поля, и только после остановки его можно толкнуть снова. Если по пути шарик проходит через лунку, он падает в неё.
Длина маршрута — число клеток, которые шарик прокатился (стартовая не считается, лунка считается). Верните строку из букв u, d, l, r — последовательность толчков, приводящую шарик в лунку по самому короткому маршруту. Если таких маршрутов несколько, верните строку, наименьшую в алфавитном порядке. Если в лунку попасть нельзя, верните "impossible".field=[[0, 0, 0], [0, 1, 0], [0, 0, 0]], start=[0, 0], hole=[2, 2] → 'dr'
Есть два маршрута длиной 4: «вниз, вправо» (dr) и «вправо, вниз» (rd). Из них выбираем меньший по алфавиту — dr.
field=[[0, 0, 0, 0], [1, 1, 0, 1], [0, 0, 0, 0]], start=[0, 0], hole=[0, 2] → 'r'
Покатившись вправо, шар проходит через лунку и падает в неё, пройдя 2 клетки.
field=[[0, 1, 0], [0, 1, 0]], start=[0, 0], hole=[1, 2] → 'impossible'
Стена посередине отделяет левую колонку от правой, до лунки не добраться.
fieldfield[i][j] равно 0 или 1start и hole — координаты [строка, столбец] свободных клеток внутри поляstart и hole не совпадаютfield=[[0, 0, 0], [0, 1, 0], [0, 0, 0]], start=[0, 0], hole=[2, 2]
'dr'
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 52 теста на сервере, включая скрытые.