1. Найди кота!

Не решаласьЛёгкая

У стажёра Тимура есть любимая бабуля Мария Владимировна. Баба Маня регулярно подкармливает кошек возле своего дома. Тимур не просто стажёр, а стажёр-разработчик! Поэтому он решил автоматизировать пополнение миски с кормом. Для этого Тимур поставил камеру и при помощи алгоритмов компьютерного зрения научился выделять кошек на фото (чтобы всю еду не склевали голуби).

Фото котов:

Коты

Выделенные с помощью алгоритмов компьютерного зрения коты:

Сегментированные коты

Баба Маня справедливо подсказала Тимуру, что надо бы не просто знать, что кошки пришли поесть к миске, но и посчитать их количество и насыпать необходимое количество порций корма. А сестра Тимура предложила сделать аккаунт с фото кошек, чтобы найти им хозяев. Для этого нужно не просто посчитать кошек на фото, но и научиться разделять кошек между собой, имея выделенные области со всеми кошками, например, вот так:

Локализованные коты

Кошки, которые приходят поесть из миски, ведут себя очень воспитанно и соблюдают социальную кошачью дистанцию. Поэтому гарантируется, что кошки на фотографии не соседствуют по горизонтальным или вертикальным пикселям. Но разные кошки могут находиться в соседних пикселях друг с другом по диагонали.

Помогите Тимуру и бабе Мане посчитать кошек и найти каждую из них на результатах уже имеющегося алгоритма!

Формат ввода

На вход подается результат первичной сегментации: NN строк, в каждой из них MM целых чисел (00 обозначает фон, 11 - области, где алгоритм нашел кошку). 1N,M5001 \le N, M \le 500

Формат вывода

В первой строке выведите число уникальных найденных на сегментации объектов.

Далее выведите матрицу размера N×MN \times M (как и входная матрица) с разметкой общих сегментированных областей на отдельные объекты (у каждого объекта должен быть свой уникальный номер).

Ограничения

Ограничение времени

1 с

Ограничение памяти

64 МБ

Пример 1

Ввод
1 0 1
0 0 0
0 1 0
Вывод
3
1 0 2
0 0 0
0 3 0

Теги

Нужно войти, чтобы отправить решение.Войти