printРабочее место участника

printЗадачи

1350. Puzzle для компьютера

Ограничения: время – 2s/4s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Прямоугольная картинка разрезана на несколько одинаковых прямоугольных кусочков. Необходимо собрать исходную картинку, стыкуя кусочки таким образом, чтобы рисунок на соприкасающихся кусочках совпадал. Кусочек головоломки для компьютера будем представлять в виде массива 4x8 символов.
10660.gif
Символы на краях этих кусочков совпадают, поэтому их можно состыковать.
Исходная картинка для упрощения окружена рамкой из символов (с ASCII-кодами 218, 196, 191, 179, 192 и 217 соответственно), которые не встречаются нигде больше в рисунке. Картинку можно собрать единственным способом.
Формат ввода
В первой строке размеры головоломки в кусочках: число рядов `N` и (через пробел) число столбцов `M` (`2\ ≤\ N,\ M\ ≤\ 5`). В последующих `4*N` строках содержится по `8*M` символов – это кусочки (размером 4x8 символов), из которых необходимо собрать головоломку.
Формат вывода
В выходной файл вывести собранную картинку.
Пример ввода (сетка нарисована для удобства)
3 4
10658.gif
Пример вывода
10657.gif
loading