Ctrl K

По ладье на линию

Средняя
На доске n × n стоят n ладей: rooks[i] = [row, col] — клетка i-й ладьи (нумерация с нуля). За один ход любую ладью можно сдвинуть на соседнюю по стороне клетку. Две ладьи никогда не могут стоять на одной клетке. Доска считается мирной, если в каждой строке и в каждом столбце стоит ровно одна ладья. Верните наименьшее число ходов, за которое можно сделать доску мирной.
Пример 1
rooks=[[0, 1], [0, 2], [2, 2]] → 3

Ладью с (0, 2) сдвигаем вниз на (1, 2), затем ладью с (2, 2) влево на (2, 1) и ещё раз на (2, 0). Строки 0, 1, 2 и столбцы 1, 2, 0 заняты по одному разу — 3 хода.

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

Доска уже мирная.

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

Все ладьи в строке 2: одну поднимаем на одну строку, другую на две — 3 хода.

Ограничения
  • 1 ≤ n = len(rooks) ≤ 500
  • 0 ≤ row, col ≤ n - 1
  • Никакие две ладьи не стоят на одной клетке
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиБольше перекусов на бюджет СредняяСила слабейшего в паре ЛёгкаяСамокаты на зарядку ЛёгкаяСамое большое число из кусков СредняяСтудии для записи Средняя
загружаем Python…
Вход
rooks=[[0, 1], [0, 2], [2, 2]]
Ожидается
3

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