2D-Ним
В настольную игру 2D–ним играют на доске в виде сетки, в узлах которой могут находиться фишки. Ход игрока состоит в удалении любого положительного количества подряд идущих фишек в любой строке или любом столбце. Например, рассмотрим левую доску на следующей картинке:
Игрок может удалить фишки (A), (B), (A, B), (A, B, C), или (B, F), и так далее. Но он не может удалить (A, C), (D, E), (H, I) или (B, G).
С целью написания программного обеспечения для игры в 2D–ним, программист хочет иметь возможность определять, была ли некоторая позиция проанализирована раньше. Из правил игры следует, что две выше представленные позиции эквивалентны. То есть если существует выигрышная стратегия для позиции слева, то эта же стратегия должна применяться для достижения выигрыша и для позиции справа. Последовательные группы фишек могут появляться в любом месте и в любой ориентации. То есть на обеих досках могут появляться одни и те же кластера фишек (кластером называется множество рядом стоящих фишек, достижимых между собой последовательностью одноклеточных ходов по горизонтали или вертикали). Например, кластер из фишек (A, B, C, F, G) встречается на обеих досках, хотя он отражен (справа налево), повернут и сдвинут.
Ваша задача – определить, являются ли две заданные позиции эквивалентными в описанном выше смысле.
Технические условия
Входные данные
Выходные данные
Информация о задаче
Лимит времени: 1 секундаЛимит памяти: 64 MB
Баллы за пройденный тест: 50
Сложность: 57% 3/7
Источник: Tehran 2002, First Iran Nationwide Internet Programming Contest
Классификация: Теория чисел, Теория игр
Пример
Пример входных данных2 8 5 11 0 0 1 0 2 0 5 0 7 0 1 1 2 1 5 1 3 3 5 2 4 4 0 4 0 3 0 2 1 1 1 4 1 3 3 3 5 2 6 2 7 2 7 4 8 5 11 0 0 1 0 2 0 5 0 7 0 1 1 2 1 5 1 3 3 6 1 4 4 0 4 0 3 0 2 1 1 1 4 1 3 3 3 5 2 6 2 7 2 7 4 |
Пример выходных данныхYES NO |
| ← Системы счисления | Список задач | Верное равенство → |
