Ctrl K

Дешёвая проводка между точками

Средняя
На плоскости стоят точки points, где points[i] = [x, y] — целые координаты. Провод между двумя точками стоит столько, сколько манхэттенское расстояние между ними: |x₁ − x₂| + |y₁ − y₂|. Нужно протянуть провода так, чтобы от любой точки можно было добраться до любой другой. Верните минимальную суммарную стоимость проводов.
Пример 1
points=[[0, 0], [3, 1], [3, 5], [-2, 0]] → 10

Тянем провода (0,0)–(−2,0) за 2, (0,0)–(3,1) за 4 и (3,1)–(3,5) за 4. Итого 10.

Пример 2
points=[[7, -7]] → 0

Точка одна, соединять нечего.

Пример 3
points=[[1, 1], [4, 2], [2, 6]] → 10
Ограничения
  • 1 ≤ len(points) ≤ 1000
  • -10⁶ ≤ x, y ≤ 10⁶
  • Все точки различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЦепочки отношений СредняяСовместимы ли равенства букв СредняяСамая дешёвая дорожная сеть СредняяОткрытые комнаты от холла СредняяГруппы по общим меткам Средняя
загружаем Python…
Вход
points=[[0, 0], [3, 1], [3, 5], [-2, 0]]
Ожидается
10

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