Коридор Каир
Коридор Каир
Пентагональная плитка Каира представляет собой разбиение плоскости с использованием полуправильных пятиугольников. Такое название плитка получила потому что несколько улиц в Каире вымощены с использованием такого дизайна.
Рассмотрим конечную укладку, где каждый пятиугольник либо пустой (белый), либо заполненный (серый). Коридор - это максимальный набор пустых смежных пятиугольников, которые соединяют четыре границы плитки. Пятиугольники считаются смежными, если они имеют общую сторону, а не только угол. Нетрудно убедиться, что в каждой укладке может быть не более одного коридора. Говорят, что коридор минимален, если у него нет лишнего пятиугольника, то есть если какой-либо пятиугольник коридора заполнить, то набор оставшихся пятиугольников уже не будет коридором.
На рисунке вверху изображены четыре примера укладки плитки. В первых трех случаях имеется коридор, который выделен желтым цветом. Кроме того, коридоры (а) и (б) минимальны, но на рисунке (с) нет: например, плитки отмеченные символом Х, могут быть заполнены и коридор все еще будет существовать. В самой правой укладке нет коридора. Рисунки (а) и (с) соответствуют первому примеру.
Напишите программу, которая прочитает текстовые описания укладки плитки, и для каждого из них определит, существует ли коридор и является ли он минимальным. В последнем случае программа должна вычислить размер коридора, то есть количество пустых пентагональных плит в коридоре.
Входные данные
Первая строка содержит количество укладок t (1 ≤ t ≤ 10). Первая строка каждой укладки содержит два натуральных числа nk
и mk
(1 ≤ n1
+ n2
+ ... + nt
≤ 250 - общее число строк, 1 ≤ m1
+ m2
+ ... + mt
≤ 250 - общее число пар плиток). Каждая из следующих nk
строк содержит 2 * mk
цифр описывающих пары aij
, bij
плит (0 - пусто и 1 - заполнено) в чередующемся горизонтальном / вертикальном порядке по шаблону "шахматной доски»" как показано на рисунке ниже.
Выходные данные
Выведите t строк; k-ая строка должна содержать размер коридора k-ой укладки если минимальный коридор существует, и NO MINIMAL CORRIDOR иначе.
2 6 6 010101001001 001000101100 110101001101 010010000100 001110110010 001001101010 6 6 010010110010 001100100111 000110100101 011001100101 100100011100 011010001101
17 NO MINIMAL CORRIDOR
1 3 4 11110111 01000000 11110111
9