terrain из символов:
- "S" — клетка, где вы стоите сейчас (ровно одна);
- "D" — клетка, куда нужно попасть (ровно одна);
- "." — сухая проходимая клетка;
- "X" — скала, на неё вставать нельзя;
- "*" — затопленная клетка.
Каждую секунду происходят две вещи одновременно: вы переходите в одну из соседних по стороне клеток, а вода разливается — каждая сухая клетка ("." или "S"), соседняя по стороне с затопленной, тоже становится затопленной. Скалы и клетка D никогда не затапливаются.
На затопленную клетку вставать нельзя, в том числе если она затапливается в ту же секунду, когда вы на неё шагаете. Стоять на месте тоже нельзя — каждую секунду нужно сделать шаг.
Верните наименьшее число секунд, за которое можно добраться до D, или -1, если это невозможно.terrain=[['S', '.', '*'], ['.', 'X', '.'], ['.', '.', 'D']] → 4
Путь вправо идёт через клетки рядом с водой: после первой секунды вода занимает (0, 1) и (1, 2), и этот путь отрезан. Обход слева вниз занимает 4 секунды, и вода туда не успевает.
terrain=[['S', '.', '.'], ['*', '.', '.'], ['.', '.', 'D']] → -1
Через секунду вода заливает (0, 0), (1, 1) и (2, 0). Остаётся только шаг вправо в (0, 1), затем в (0, 2). Но к этому моменту вода уже заняла (0, 1) и (1, 2), идти дальше некуда, и до D не добраться.
terrain=[['D', 'S'], ['X', '*']] → 1
Цель рядом: один шаг влево, 1 секунда.
S, D, ., *, XS ровно одна, клетка D ровно однаterrain=[['S', '.', '*'], ['.', 'X', '.'], ['.', '.', 'D']]
4
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 88 тестов на сервере, включая скрытые.