Задачи
November 28, 2021

Анонс. Гнилые мандарины

Задача. На прямоугольном поддоне разложены мандарины в один слой. Также известно, что каждый день любой свежий мандарин, примыкающий к испорченному мандарину в одном из 4х направлениях (сверху, снизу, справа, слева), тоже портится.

Необходимо посчитать минимальное кол-во дней, которое должно пройти до тех пор, пока на поддоне не останется свежих мандаринов. Если такой исход невозможен, то верните -1.

Входные данные: grid - матрица размера NxM, элементы матрицы - это 3 возможных значения:

  • 0 - пустая ячейка в поддоне
  • 1 - свежий мандарин
  • 2 - испорченный мандарин

N,M - целые числа в диапазоне от 1 до 10.

Вывод: кол-во дней, ктр должны пройти, чтобы не осталось свежих мандаринов. Если это невозможно, то -1.

1й пример

[2,1,1],
[1,1,0],
[0,1,1]

Output: 4

Пояснение:
Начальная позиция:
[2,1,1],
[1,1,0],
[0,1,1]

1 день:
[2,2,1],
[2,1,0],
[0,1,1]

2 день:
[2,2,2],
[2,2,0],
[0,1,1]

3 день:
[2,2,2],
[2,2,0],
[0,2,1]

4 день:
[2,2,2],
[2,2,0],
[0,2,2]


2й пример
[2,1,1],
[0,1,1],
[1,0,1]

Output: -1

Пояснение:
Начальная позиция:
[2,1,1],
[0,1,1],
[1,0,1]

1 день:
[2,2,1],
[0,1,1],
[1,0,1]

2 день:
[2,2,2],
[0,2,1],
[1,0,1]

3 день:
[2,2,2],
[0,2,2],
[1,0,1]

4 день, 5 день, ...:
[2,2,2],
[0,2,2],
[1,0,2]