plan размером m × n, в каждой клетке одно из чисел:
- 0 — свободная земля, по ней можно ходить;
- 1 — здание, через него пройти нельзя;
- 2 — препятствие, через него тоже пройти нельзя.
На одной из свободных клеток нужно построить дом. Ходить можно только вверх, вниз, влево и вправо по свободным клеткам; расстояние от дома до здания — наименьшее число шагов от клетки дома до клетки здания (последний шаг — на само здание).
Выберите свободную клетку, из которой можно дойти до каждого здания, так, чтобы сумма расстояний до всех зданий была минимальной, и верните эту сумму. Если подходящей клетки нет, верните -1.plan=[[1, 0, 0, 1], [0, 2, 0, 0], [0, 0, 0, 1]] → 6
Лучше всего строить в клетке (0, 2): до зданий 2, 1 и 3 шага, всего 6. А, например, клетка (0, 1) даёт 1 + 2 + 4 = 7 — это хуже.
plan=[[1, 2, 0], [2, 0, 0], [0, 0, 1]] → -1
Здание в левом верхнем углу со всех сторон закрыто — до него не дойти ни из одной свободной клетки.
plan=[[0, 1, 0]] → 1
Обе свободные клетки стоят рядом со зданием.
plan=[[1, 0, 0, 1], [0, 2, 0, 0], [0, 0, 0, 1]]
6
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 89 тестов на сервере, включая скрытые.