На сайте acmp.ru добавились 300 новых задач, и сейчас самое время их решить. К сожалению, ничего лучше и проще, чем решить эту задачу в лоб, быстро придумать не получилось. Поэтому решение состоит в применении поиска в глубину на двумерном массиве. Модификация ещё и в том, что dfs возвращает количество клеток, которые закрасил. Это позволяет избавиться от отдельного подсчёта размеров компонент связности. Стоит обратить внимание на массив dd, в котором перечислены варианты ходов внутри компоненты связности. Его удобно использовать, чтобы не писать множество if'ов (особенно если вариантов много, например, у шахматного коня). И тогда основная программа будет состоять из считывания и многократного вызова dfs'а. Я очень хочу, чтобы мои советы были полезны вам, а для того, чтобы быстрее всех получать новые статьи можно подписаться на мой канал.