Ctrl K

Контур цветного пятна

Средняя
Картинка задана прямоугольной таблицей canvas: число в каждой клетке — её цвет. Соседями считаются клетки, у которых общая сторона (по диагонали — не соседи). **Пятно** — это максимальная связная группа соседних клеток одного цвета. Клетка пятна лежит на его **контуре**, если она стоит на краю холста (в первой или последней строке или столбце) либо хотя бы один её сосед не входит в пятно. Возьмите пятно, которому принадлежит клетка canvas[r][c], и перекрасьте в цвет paint все клетки его контура. Остальные клетки, включая внутренние клетки пятна, не меняются. Верните получившуюся таблицу. Обратите внимание: принадлежность к пятну определяется по исходным цветам, а не по уже перекрашенным.
Пример 1
canvas=[[4, 4, 1], [4, 4, 1], [2, 4, 4]], r=0, c=0, paint=9 → [[9, 9, 1], [9, 9, 1], [2, 9, 9]]

Пятно цвета 4 из клетки (0, 0) — шесть клеток. Каждая из них либо лежит на краю холста, либо соседствует с клеткой другого цвета, поэтому перекрашиваются все шесть.

Пример 2
canvas=[[5, 5, 5, 5], [5, 5, 5, 5], [5, 5, 5, 5]], r=1, c=2, paint=7 → [[7, 7, 7, 7], [7, 5, 5, 7], [7, 7, 7, 7]]

Весь холст — одно пятно. Внутренние клетки (1, 1) и (1, 2) со всех сторон окружены своим цветом и не трогаются, остальные клетки лежат на краю холста.

Пример 3
canvas=[[3, 6], [6, 3]], r=0, c=1, paint=6 → [[3, 6], [6, 3]]

Пятно состоит из одной клетки: клетки по диагонали соседями не считаются. Её «перекрашивают» в тот же цвет 6, так что холст не меняется.

Ограничения
  • 1 ≤ число строк, число столбцов canvas ≤ 50
  • Все строки одной длины
  • 1 ≤ canvas[i][j] ≤ 1000
  • 1 ≤ paint ≤ 1000
  • 0 ≤ r < число строк, 0 ≤ c < число столбцов
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОсушение замкнутых прудов СредняяУчастки суши на карте СредняяДождь стекает в оба моря СредняяОстановится ли шарик в цели СредняяКратчайший путь катящегося шарика Средняя
загружаем Python…
Вход
canvas=[[4, 4, 1], [4, 4, 1], [2, 4, 4]], r=0, c=0, paint=9
Ожидается
[[9, 9, 1], [9, 9, 1], [2, 9, 9]]

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