Ctrl K

Каждый цвет — один раз

Сложная
Робот-маляр расписывает стену, разбитую на клетки m × n. За один ход он выбирает цвет и сплошь закрашивает им любой прямоугольник из клеток; всё, что было в этом прямоугольнике раньше, оказывается закрашенным. Ограничение одно: каждым цветом робот может воспользоваться не больше одного раза. Дана матрица wall, где wall[i][j] — цвет, который должна иметь клетка в строке i и столбце j в итоге. Верните True, если робот может получить ровно такую стену, и False иначе.
Пример 1
wall=[[3, 3, 3], [3, 5, 3], [3, 3, 3]] → True

Сначала вся стена закрашивается цветом 3, затем в центр ложится прямоугольник 1×1 цвета 5.

Пример 2
wall=[[4, 4, 7], [4, 4, 7], [2, 2, 7]] → True

Подойдёт порядок 4 → 2 → 7: квадрат 2×2 цвета 4, полоса цвета 2 в нижней строке и столбец цвета 7 справа.

Пример 3
wall=[[1, 2], [2, 1]] → False

Прямоугольник, охватывающий обе клетки цвета 1, — это вся стена, значит, цвет 2 должен лечь позже. Но то же самое верно и для цвета 2 по отношению к 1. Противоречие, такую стену не получить.

Ограничения
  • m == wall.length, n == wall[i].length
  • 1 ≤ m, n ≤ 60
  • 1 ≤ wall[i][j] ≤ 60
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный подъём по карте СложнаяУровни клеток по строкам и столбцам СложнаяМышь, кот и сыр СложнаяПрогулки только в гору СложнаяСжать таблицу чисел Сложная
загружаем Python…
Вход
wall=[[3, 3, 3], [3, 5, 3], [3, 3, 3]]
Ожидается
True

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