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

Древние сообщения

Древние сообщения

Для того чтобы понять ранние цивилизации, археологи часто изучают тексты, написанные на древних языках. Один из таких языков, используемых в Египте более \textbf{3000} лет назад, был основан на символах, называемых иероглифами. Рисунок \textbf{С.1} показывает шесть иероглифов и их названия. В этой задаче Вам следует написать программу, которая будет распознавать эти шесть символов. Рисунок \textbf{C.1}: Шесть иероглифов \InputFile Входные данные состоят из нескольких тестов, каждый из которых описывает изображение, содержащее один или более иероглифов, изображенных на рисунке \textbf{C.1}. Изображения задаются в виде последовательности горизонтальных сканирующих линий, состоящих из черных точек (представляемых \textbf{1}) и белых точек (представляемых \textbf{0}). Во входных данных сканирующая прямая закодирована в шестнадцатеричной системе счисления. Например, последовательность точек \textbf{10011100} (одна черная точка, за ней следует две белых и так далее) представляется шестнадцатеричным числом \textbf{9c}. В шестнадцатеричной записи чисел используются только прописные буквы от \textbf{a} до \textbf{f}. Первая строка каждого теста содержит два целых числа \textbf{H} и \textbf{W}. \textbf{H} (\textbf{0} < \textbf{H} ≤ \textbf{200}) - количество сканирующих линий в изображении. \textbf{W} (\textbf{0} < \textbf{W} ≤ \textbf{50}) - количество шестнадцатеричных символов в каждой строке. Следующие \textbf{H} строк содержат шестнадцатеричные символы изображения, заданные сверху вниз. Входные изображения удовлетворяют следующим условиям: \begin{itemize} \item Изображение содержит только иероглифы, представленные на рисунке \textbf{C.1}. \item Каждое изображение содержит как минимум один иероглиф. \item Каждая черная точка в изображении является частью иероглифа. \item Каждый иероглиф состоит из замкнутого множества черных точек, при этом каждая черная точка имеет соседнюю черную точку или сверху, или снизу, или слева, или справа. \item Иероглифы не касаются друг друга и никакой иероглиф не находится внутри другого. \item Если две черные точки касаются по диагонали, то обязательно будет еще одна черная точка, которая касается их обоих. \item Иероглифы могут быть искаженными, но каждый из них должен быть топологически эквивалентным одному из символов, изображенных на рисунке \textbf{C.1} (Две фигуры являются топологически эквивалентными, если каждая из них может быть преобразована в другую растяжением без разрывов). \end{itemize} Последний тест завершается строкой, содержащей два ноля. \OutputFile Для каждого теста следует вывести его номер и строку, содержащую по одному символу для каждого иероглифа, распознанного в изображении, используя следующую кодировку: \textbf{Ankh: A } \textbf{Wedjat: J } \textbf{Djed: D } \textbf{Scarab: S } \textbf{Was: W } \textbf{Akhet: K} В каждой выходной строке коды следует выводить в алфавитном порядке как показано в примере выхода. Пример входа содержит тесты, показанные на рисунках \textbf{C.2} и \textbf{C.3}. Из-за ограничений на размер не все входные данные представлены в примере.
Лимит времени 3 секунды
Лимит использования памяти 256 MiB
Входные данные #1
100 25
0000000000000000000000000
0000000000000000000000000
0000000000000000000000000
0000000000000000000000000
0000000000000000000000000
0000000000000000000000000
0000000000000000000000000
0000000000000000000000000
0000000000000000000000000
00000f8000000000000000000
00001fe000000000000000000
00007ff000000000000000000
00007ff800000000000000000
0000f8f800000000000000000
0001f07c00000000000000000
0001e03c00000000001800000
0001e01c00000000003c00000
0001c01c00000000007c00000
0003c01e0000000000f800000
0003c01e0000000001f000000
0001c01c0000000003f000000
0001c01c0000000007e000000
0001e01c000000000fc000000
0001e03c000000001fc000000
0000e03c000000001fc000000
0000f038000000003ff000000
0000f078000000003ff800000
00007870000000007ff800000
000038f0000000007cfc00000
00003ce0000000007c7c00000
00781fc0f0000000f87c00000
007ffffff0000000f07c00000
007ffffff0000000f07c00000
007ffffff0000001f07c00000
007ffffff0000000e03e00000
007fcf81f0000000603e00000
00000f8000000000003e00000
00000f8000000000003e00000
00000
...
Выходные данные #1
Case 1: AKW
Источник ICPC 2011 World Finals