field размером m × n. В каждой клетке одно из трёх значений:
- 0 — трава,
- 1 — огонь,
- 2 — стена, сквозь которую не проходят ни вы, ни огонь.
Вы стоите в левой верхней клетке (0, 0), а убежище — в правой нижней (m - 1, n - 1). Каждую минуту вы можете перейти на соседнюю по стороне клетку с травой. Сразу после вашего хода огонь перекидывается из каждой горящей клетки на все соседние по стороне клетки, кроме стен.
Верните наибольшее число минут, которое можно простоять на старте, а потом всё равно благополучно добраться до убежища. Если дойти невозможно даже без ожидания, верните -1. Если до убежища можно дойти, сколько бы вы ни ждали, верните 10⁹.
Если огонь доходит до убежища в ту же минуту, когда вы в него вошли, вы успели.field=[[0, 0, 0, 1], [0, 2, 2, 2], [0, 0, 0, 0]] → 2
Огонь идёт влево по верхнему ряду и через 3 минуты доходит до старта, а дальше гонится за вами вниз по левому столбцу. Если простоять 2 минуты, вы всё время держитесь на шаг впереди огня и проходите 5 шагов до убежища. После 3 минут ожидания старт уже горит.
field=[[0, 0, 0, 0], [2, 2, 2, 0], [1, 2, 0, 0]] → 1000000000
Огонь заперт стенами в левом нижнем углу и никуда не распространяется, так что ждать можно сколько угодно: ответ 10⁹.
field=[[0, 0, 0, 0, 0], [0, 2, 2, 2, 0], [0, 2, 1, 0, 0]] → -1
Огонь доходит до убежища за 2 минуты, а любой путь к нему — 6 шагов. Не успеть даже без ожидания, ответ -1.
field), n == len(field[i])field[i][j] — 0, 1 или 2field[0][0] == field[m - 1][n - 1] == 0field=[[0, 0, 0, 1], [0, 2, 2, 2], [0, 0, 0, 0]]
2
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 88 тестов на сервере, включая скрытые.