Время

14:05:49
24 May 2012
Версия для печати

Двумерное домино

 prb156     Каждый элемент двумерного домино представляет собой квадрат, стороны которого несут на себе числа от 0 до 3, записанные в двоичной системе счисления. Домино считается сложенным правильно, если каждая пара квадратов домино, имеющих общую сторону, несёт на этой стороне одно и то же число.

   Необходимо определить, правильно ли составлено домино и можно ли добавить к нему ещё один заданный элемент так, чтобы он имел общую сторону хотя бы с одним из исходных квадратов. При добавлении элемент можно произвольно вращать, но не переворачивать.


Технические условия

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

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

   • пустая позиция обозначается ZZ;

  • элемент, занимающий непустую позицию, задаётся шестнадцатеричным текстовым представлением одного байта, в котором каждые два бита указывают число на одной из сторон. Стороны перечисляются по часовой стрелке, начиная с левой.

   Последняя строка содержит описание элемента, который предлагается добавить к уже составленному набору. Предполагается, что добавление происходит в пределах того же прямоугольника N×M.

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

   В выходном файле должно содержаться одно из трёх слов:

   • ERROR (домино составлено неправильно);

   • YES (домино составлено правильно, элемент добавить можно);

   • NO (домино составлено правильно, но элемент добавить нельзя).


Информация о задаче

Лимит времени: 1 секунда
Лимит памяти: 64 MB
Баллы за пройденный тест: 4
Сложность: 53% 9/19

Пример

Пример входных данных

2 2
50 ZZ
8D FF
3F

Пример выходных данных

YES


← Научный проект Список задач Зоопарк →