Ctrl K

Три мирные ладьи

Сложная
Дана доска grid размером m × n, в каждой клетке записано целое число — её ценность. Нужно поставить на доску три ладьи так, чтобы они не били друг друга: никакие две не должны стоять в одной строке или в одном столбце. Верните наибольшую возможную сумму ценностей клеток, на которых стоят ладьи.
Пример 1
grid=[[2, -1, 5], [0, 4, 4], [6, 1, -2]] → 15

Ладьи на клетках (0, 2), (1, 1) и (2, 0): 5 + 4 + 6 = 15. Все строки и столбцы разные.

Пример 2
grid=[[-5, -1, -7, -2], [-3, -8, -1, -4], [-6, -2, -9, -1]] → -3

Все числа отрицательные, но ставить ладьи всё равно нужно: лучше всего (0, 1), (1, 2), (2, 3) — сумма -3.

Пример 3
grid=[[9, 9, 0], [9, 9, 0], [0, 0, 0]] → 18
Ограничения
  • 3 ≤ m = len(grid) ≤ 500
  • 3 ≤ n = len(grid[i]) ≤ 500
  • -10⁹ ≤ grid[i][j] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиТри ладьи на большой доске СложнаяСамый большой горящий блок СложнаяПереход через пещеру СложнаяСамый длинный подъём по карте СложнаяНедели отдыха с перелётами Сложная
загружаем Python…
Вход
grid=[[2, -1, 5], [0, 4, 4], [6, 1, -2]]
Ожидается
15

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