Ctrl K

Как быстро расползётся вирус

Средняя
Компьютеры в зале стоят сеткой field размером m × n. В каждой клетке одно из трёх значений: - 0 — место пустое; - 1 — здоровый компьютер; - 2 — заражённый компьютер. Каждую минуту вирус перескакивает с каждого заражённого компьютера на здоровых соседей сверху, снизу, слева и справа (по диагонали — нет). Верните, через сколько минут в зале не останется ни одного здорового компьютера. Если какой-то компьютер так и не будет заражён, верните -1.
Пример 1
field=[[1, 1, 0], [2, 1, 1], [0, 0, 1]] → 3

Минута 1: заражаются соседи (1,0) — клетки (0,0) и (1,1). Минута 2: (0,1) и (1,2). Минута 3: (2,2). Все здоровые заражены за 3 минуты.

Пример 2
field=[[2, 0, 1]] → -1

Пустая клетка отделяет здоровый компьютер от заражённого — до него вирус не доберётся.

Пример 3
field=[[0, 2], [2, 0]] → 0

Здоровых компьютеров нет с самого начала — ждать ничего не нужно.

Ограничения
  • 1 ≤ m, n ≤ 100
  • field[i][j] — 0, 1 или 2
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОсушение замкнутых прудов СредняяУчастки суши на карте СредняяШаги до ближайшего выхода СредняяДождь стекает в оба моря СредняяОстановится ли шарик в цели Средняя
загружаем Python…
Вход
field=[[1, 1, 0], [2, 1, 1], [0, 0, 1]]
Ожидается
3

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 99 тестов на сервере, включая скрытые.