eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Фантасмагория

Фантасмагория

В снах Эмиля часто фигурируют люди или животные, которые превращаются в других. Эмиль хотел бы показать всем чарующий мир своей мечты, создав самый первый анимационный мультфильм, разумеется, черно-белый. Проснувшись, Эмиль помнит только начальную и конечную формы, появившиеся во сне, но не саму трансформацию, поэтому он просит Вас воспроизвести эти "морфинги", подробно описав шаги, предпринятые для превращения первого образа во второй. Образы в снах Эмиля --- это не просто черно-белые изображения, они подчиняются следующим трем ограничениям. Во-первых, все пиксели на границе изображения (крайний левый и правый столбцы, а также верхняя и нижняя строки) имеют одинаковый цвет. Во-вторых, изображение не содержит квадратов $2 \times 2$ вида \includegraphics{https://eolympusercontent.com/images/imf6uh82sl15h3r8p7j7hesl3s.gif} Третье ограничение более сложное и может быть описано следующим образом. Разделим изображение на области, которые определяются как связанные монохроматические области изображения, т. е. они образуют тончайшее разбиение пикселей так, что любые два соседних пикселя одного цвета находятся в одной и той же области. Две области считаются соседними, если они содержат соседние пиксели. В изображениях Эмиля каждый регион соседствует не более чем с двумя другими областями, а область, содержащая граничные пиксели, соседствует не более чем с одной другой областью. Вам даны два черно-белых изображения одинакового размера $w \times h$, и ваша цель --- найти "морфинг", преобразующий первое изображение во второе. Морфинг изображения $A$ в изображение $B$ --- это последовательность изображений, начинающаяся с $A$ и заканчивающаяся $B$, такая что: \begin{itemize} \item каждое изображение (кроме первого) можно получить из предыдущего путем переворота одного бита; \item каждое изображение соответствует трем вышеуказанным ограничениям; \item количество регионов каждого цвета при морфинге не меняется. \end{itemize} \InputFile В первой строке заданы два целых числа $w~(1 \le w \le 103)$ и $h~(1 \le h \le 64)$. Затем идут $h$ строк, которые построчно, сверху вниз, описывают первое изображение. Каждая из этих строк состоит из $w$ символов: $k$-й символ строки равен $'.'$, если $k$-й пиксель строки белый, и $'\#'$, если этот пиксель черный. Далее идут $h$ строк, которые построчно описывают второе изображение в том же формате, что и выше. Первое и последнее изображения Эмиля отличаются друг от друга. \OutputFile Если морфинга не существует, выведите слово "\textbf{IMPOSSIBLE}". В противном случае опишите один из возможных морфингов следующим образом: если $(k + 1)$-е изображение получено из $k$-го изображения путем переворачивания пикселя в столбце $c$ и строке $r$ (с $0 \le c < w$ и $0 \le r < h$, где $c = 0$ представляет собой самый левый столбец, а $r = 0$ представляет собой самую верхнюю строку), то $k$-я строка содержит пару $(c, r)$. Выходные данные должны содержать не более $250000$ переворотов пикселей.
Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
4 3
....
.#..
....
....
..#.
....
Выходные данные #1
2 1
1 1
Входные данные #2
9 12
.........
...###...
...#.#...
.#######.
...###...
...###...
.#..#....
.#######.
...###.#.
...###...
..##.##..
.........
.........
..#####..
..##.##..
..#...#..
..#.#.#..
..#...#..
..#####..
...#.#...
...#.#...
...#.#...
.###.###.
.........
Выходные данные #2
IMPOSSIBLE
Источник 2020 ACM Southwestern Europe Regional Contest (SWERC), Paris, March 7 (2021), Problem M