#include #include #include #include #include #include #include enum Direction { Down, LeftDown, Left, LeftTop, Top, TopRight, Right, DownRight, }; int main() { std::ios::sync_with_stdio(false); std::cin.tie(NULL); int charNum, offset; std::cin >> charNum; std::cin >> offset; char *s = new char[90]; std::vector, char>> decodeMap{ {{'.', '.', '.', '.', '.', '#', '#', '.'}, 'A'}, {{'.', '.', '.', '#', '.', '.', '#', '.'}, 'B'}, {{'#', '.', '.', '.', '.', '.', '#', '.'}, 'C'}, {{'.', '#', '.', '.', '.', '.', '#', '.'}, 'D'}, {{'.', '.', '#', '.', '.', '.', '#', '.'}, 'E'}, {{'.', '.', '.', '.', '#', '.', '#', '.'}, 'F'}, {{'.', '.', '.', '.', '.', '.', '#', '#'}, 'G'}, {{'.', '.', '.', '#', '.', '.', '#', '.'}, 'H'}, {{'#', '.', '.', '.', '.', '#', '.', '.'}, 'I'}, {{'.', '#', '.', '.', '#', '.', '.', '.'}, 'J'}, {{'.', '#', '.', '.', '.', '#', '.', '.'}, 'K'}, {{'.', '.', '#', '.', '.', '#', '.', '.'}, 'L'}, {{'.', '.', '.', '.', '#', '#', '.', '.'}, 'M'}, {{'.', '.', '.', '.', '.', '#', '.', '#'}, 'N'}, {{'#', '.', '.', '#', '.', '.', '.', '.'}, 'O'}, {{'.', '#', '.', '#', '.', '.', '.', '.'}, 'P'}, {{'.', '.', '#', '#', '.', '.', '.', '.'}, 'Q'}, {{'.', '.', '.', '#', '#', '.', '.', '.'}, 'R'}, {{'.', '.', '.', '#', '.', '.', '.', '#'}, 'S'}, {{'#', '#', '.', '.', '.', '.', '.', '.'}, 'T'}, {{'#', '.', '#', '.', '.', '.', '.', '.'}, 'U'}, {{'.', '#', '.', '.', '.', '.', '.', '#'}, 'V'}, {{'.', '.', '#', '.', '#', '.', '.', '.'}, 'W'}, {{'.', '.', '#', '.', '.', '.', '.', '#'}, 'X'}, {{'#', '.', '.', '.', '#', '.', '.', '.'}, 'Y'}, {{'.', '.', '.', '.', '#', '.', '.', '#'}, 'Z'}, }; std::map> dirToIndices{ {Down, {54, 64, 74}}, {LeftDown, {53, 62, 71}}, {Left, {41, 42, 43}}, {LeftTop, {11, 22, 33}}, {Top, {14, 24, 34}}, {TopRight, {17, 26, 35}}, {Right, {45, 46, 47}}, {DownRight, {55, 66, 77}}, }; std::map> charToDir{ {'A', {Down, LeftDown}}, {'B', {Down, Left}}, {'C', {Down, LeftTop}}, {'D', {Down, Top}}, {'E', {Down, TopRight}}, {'F', {Down, Right}}, {'G', {Down, DownRight}}, {'H', {LeftDown, Left}}, {'I', {LeftDown, LeftTop}}, {'J', {Top, Right}}, {'K', {LeftDown, Top}}, {'L', {LeftDown, TopRight}}, {'M', {LeftDown, Right}}, {'N', {LeftDown, DownRight}}, {'O', {Left, LeftTop}}, {'P', {Left, Top}}, {'Q', {Left, TopRight}}, {'R', {Left, Right}}, {'S', {Left, DownRight}}, {'T', {LeftTop, Top}}, {'U', {LeftTop, TopRight}}, {'V', {Top, DownRight}}, {'W', {TopRight, Right}}, {'X', {TopRight, DownRight}}, {'Y', {LeftTop, Right}}, {'Z', {Right, DownRight}}, }; std::vector chars; chars.reserve(charNum); std::cin.get(); for (int i = 0; i < charNum; ++i) { std::cin.read(s, 90); std::list input = {s[11], s[14], s[17], s[41], s[47], s[71], s[74], s[77]}; for (auto &[mask, c] : decodeMap) { if (mask == input) { chars.push_back(c); break; } } } // for (char c : chars) // std::cout<