Ctrl K

Белка собирает орехи

Средняя
Сад — это клетчатое поле из rows строк и cols столбцов. В клетке tree растёт дерево, в клетке start сидит белка, а в клетках из списка nuts лежат орехи (координаты записаны как [строка, столбец]). Белка должна перенести все орехи под дерево. За раз она может нести не больше одного ореха, а за один ход перемещается в соседнюю по стороне клетку. Верните наименьшее суммарное число ходов, за которое белка перенесёт все орехи.
Пример 1
rows=4, cols=5, tree=[1, 1], start=[3, 4], nuts=[[0, 0], [2, 3]] → 9

Сначала белка идёт к ореху (2, 3) — 2 хода, несёт его к дереву — 3 хода. Потом сходить за (0, 0) и вернуться — 2 + 2 хода. Всего 9.

Пример 2
rows=1, cols=4, tree=[0, 0], start=[0, 3], nuts=[[0, 2]] → 3

Один шаг до ореха и два шага с ним до дерева.

Пример 3
rows=3, cols=3, tree=[1, 1], start=[1, 1], nuts=[[0, 1], [2, 2]] → 6
Ограничения
  • 1 ≤ rows, cols ≤ 100
  • 1 ≤ len(nuts) ≤ 10⁴
  • Все координаты внутри поля: 0 ≤ строка < rows, 0 ≤ столбец < cols
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПовернуть квадрат по часовой СредняяПостфиксный калькулятор СредняяПрокрутка массива вправо СредняяПростые числа до границы СредняяN-е число из заданных простых Средняя
загружаем Python…
Вход
rows=4, cols=5, tree=[1, 1], start=[3, 4], nuts=[[0, 0], [2, 3]]
Ожидается
9

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