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