1.14. Навстречу друг другу

Дано прямоугольное клетчатое поле M´N клеток. Каждая клетка поля покрашена в один из шести цветов, причем левая верхняя и правая нижняя клетки имеют различный цвет. В результате поле разбивается на некоторое количество одноцветных областей: две клетки одного цвета, имеющие общую сторону, принадлежат одной области.

Правила игры

Играют два игрока. За первым игроком закреплена область, включающая левую верхнюю клетку, за вторым — правую нижнюю. Игроки ходят по очереди. Делая ход, игрок перекрашивает свою область:

А) в любой из шести цветов;

Б) в любой из шести цветов, за исключением цвета своей области и цвета области противника.

В результате хода к области игрока присоеди­няются все прилегающие к ней области выбранного цвета, если такие имеются. Если после очередного хода окажется, что области игроков соприкасаются, то игра заканчивается.

Задание

Напишите программу, которая для каждого из пунктов (А и Б) определяет минимально возможное число ходов, по прошествии которых игра может завершиться.

Входные данные

Цвета пронумерованы цифрами от 1 до 6. Первая строка входного файла содержит целые числа M и N — размеры поля (1 £ MN £ 50). Далее следует описание раскраски поля — M строк по N цифр (от 1 до 6) в каждой без пробелов. Первая цифра файла соответствует цвету левой верхней клетки игрового поля. Количество одноцветных областей не превосходит 50.

Выходные данные

В выходной файл выведите искомое количество ходов для каждого из пунктов. Если ваша программа решает только один из пунктов, выведите произвольное целое число в качестве ответа на другой пункт.

Пример входного файла

4 3

122

221

143

132

Пример выходного файла

3

4

Вернуться к главе 1


Valid CSS! Valid XHTML 1.0!
Webmaster: Антон Лапунов
Используются технологии uCoz