LRJ-Example-06-13-Uva1103
pic[][]数组存储每个点的值,0或1,输入时在原图的周围加了一圈0。
color[][]数组存储每个点的color值,从1开始,dfs(row, col, c) 负责对每个点着色,连通在一起的连通块的颜色相同。
因为最先着色的是最外围的白色点,即background white,这些点的color值是1。
neighbour[]数组的下标是color值,内容是一个set,存储下标color所代表的连通块周围的连通块的颜色,background white这个连通块不算。
比如
1. 测试用例
6 2
00
7c
44
7c
30
00
代表图像A, 会有3个color,color 1 是 backgroud white, color 2 是唯一的黑色连通块,color 3 是黑色连通块中间的空白区域
2. 测试用例
10 3
000
778
548
748
578
700
000
7f0
1e0
000
代表图像AKW, 会有7个color,color 1 是 backgroud white, color 2, 3, 5 是三个黑色连通块,color 4,6,5 是黑色连通块中间的空白区域
#define _CRT_SECURE_NO_WARNINGS // UVa1103 Ancient Messages // Rujia Liu // we pad one empty line/column to the top/bottom/left/right border, so color 1 is always "background" white #include<cstdio> #include<cstring> #include<algorithm> #include<vector> #include<set> using namespace std; char bin[256][5]; const int maxh = 200 + 5; const int maxw = 50 * 4 + 5; int H, W, pic[maxh][maxw], color[maxh][maxw]; char line[maxw]; void decode(char ch, int row, int col) { for (int i = 0; i < 4; i++) pic[row][col + i] = bin[ch][i] - '0'; } const int dr[] = { -1, 1, 0, 0 }; const int dc[] = { 0, 0, -1, 1 }; // dfs from (row, col) and paint color c void dfs(int row, int col, int c) { color[row][col] = c; for (int i = 0; i < 4; i++) { int row2 = row + dr[i]; int col2 = col + dc[i]; if (row2 >= 0 && row2 < H && col2 >= 0 && col2 < W && // within range pic[row2][col2] == pic[row][col] && // same color, both black or both white color[row2][col2] == 0) // not colored yet dfs(row2, col2, c); } } vector<set<int> > neighbors; void check_neighbors(int row, int col) { for (int i = 0; i < 4; i++) { int row2 = row + dr[i]; int col2 = col + dc[i]; if (row2 >= 0 && row2 < H && col2 >= 0 && col2 < W && // within range pic[row2][col2] == 0 && // this neighbour is a white point color[row2][col2] != 1) // not the background wihte, the outmost white area (background white) is colored 1 neighbors[color[row][col]].insert(color[row2][col2]); } } const char* code = "WAKJSD"; char recognize(int c) { int cnt = neighbors[c].size(); return code[cnt]; } // use this function to print the decoded picture void print() { for (int i = 0; i < H; i++) { for (int j = 0; j < W; j++) printf("%d", pic[i][j]); printf("\n"); } } int main() { strcpy(bin['0'], "0000"); strcpy(bin['1'], "0001"); strcpy(bin['2'], "0010"); strcpy(bin['3'], "0011"); strcpy(bin['4'], "0100"); strcpy(bin['5'], "0101"); strcpy(bin['6'], "0110"); strcpy(bin['7'], "0111"); strcpy(bin['8'], "1000"); strcpy(bin['9'], "1001"); strcpy(bin['a'], "1010"); strcpy(bin['b'], "1011"); strcpy(bin['c'], "1100"); strcpy(bin['d'], "1101"); strcpy(bin['e'], "1110"); strcpy(bin['f'], "1111"); int kase = 0; while (scanf("%d%d", &H, &W) == 2 && H) { memset(pic, 0, sizeof(pic)); for (int i = 0; i < H; i++) { scanf("%s", line); for (int j = 0; j < W; j++) decode(line[j], i + 1, j * 4 + 1); } H += 2; // pad one line on top and bottom W = W * 4 + 2; // pad one line on left and right int cnt = 0; vector<int> cc; // connected components of 1 (black points), their colors are stored memset(color, 0, sizeof(color)); for (int i = 0; i < H; i++) { for (int j = 0; j < W; j++) { if (!color[i][j]) { dfs(i, j, ++cnt); if (pic[i][j] == 1) // black point cc.push_back(cnt); } } } neighbors.clear(); neighbors.resize(cnt + 1); //cnt is color, starting from 1, neighbors[1], ..., neighbors[cnt] are used, neighbors[0] is unused for (int i = 0; i < H; i++) { for (int j = 0; j < W; j++) { if (pic[i][j] == 1) // black point check_neighbors(i, j); // check its white point neighbours } } vector<char> ans; for (int i = 0; i < cc.size(); i++) ans.push_back(recognize(cc[i])); sort(ans.begin(), ans.end()); printf("Case %d: ", ++kase); for (int i = 0; i < ans.size(); i++) printf("%c", ans[i]); printf("\n"); } return 0; }
http://www.cnblogs.com/AOQNRMGYXLMV/p/3989724.html
首先图像是被压缩过的,所以我们要把它解码成一个01矩阵。而且我们还要在原图像的四周加一圈白边,这样图中的白色背景都连通起来了。
黑色连通块的个数就是字符的个数。
观察题中字符样式可知,每种字符中包裹的“白洞”的个数是不同的,所以我们可以根据每个字符中的“白洞”的个数来区别这些字符。
然后我们给所有的连通块染色,并用color存储所标记的颜色。第一个染的是白色背景色,编号为1
把所有的黑色连通块的标号存放到cc里面
neighbors是由若干个集合所组成的数组,记录的是黑色连通块i周围相连的非背景色的白块,即“白洞”。
最后每个集合中元素的个数对应的就是字符的编号,最后排序输出即可。
http://www.cnblogs.com/hanbinggan/p/4225044.html
6 2 00 7c 44 7c 30 00 6 25 0000000000000000000000000 0000000000000000000000000 00001fe0000000000007c0000 00003fe0000000000007c0000 0000000000000000000000000 0000000000000000000000000 10 3 000 778 548 748 578 700 000 7f0 1e0 000 16 2 00 7e 42 7e 42 7e 42 7e 42 7e 42 7e 00 00 4a 00 16 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 9 2 00 7e 42 7e 42 7e 42 7e 00 43 2 00 7e 00 7e 42 7e 42 7e 42 7e 00 7e 42 7e 00 7e 42 7e 42 7e 00 7e 42 7e 42 7e 42 7e 42 7e 00 7e 42 7e 42 7e 42 7e 42 7e 42 7e 00 200 50 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000 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 00000f8000000000003e00000 00000f8000000000001e00000 00000f8000000000001f00000 00000fc000000000001f00000 00000fc000000000001f00000 00000fc000000000001f00000 00000fc000000000000f00000 00001fc000000000000f80000 00001fc000000000000f80000 00001fc000000000000f80000 00001fc000000000000f80000 00001fe000000000000f80000 00001fe000000000000780000 00001fe0000000000007c0000 00001fe0000000000007c0000 00003fe0000000000007c0000 00003fe0000000000007c0000 00003fe0000000000007c0000 00003fe0000c00000003c0000 00000000003ff0000003c0000 00000000007ff8000003e0000 0000000001fffc000003e0000 0000000003e03f000003e0000 0000000007c00f000003e0000 000000000f0003800003f0000 000000000e0001c00003fc000 000000001c0001e00007fe000 000000003c0000e0000fff000 000000073c000070000fdf000 0000001ff8000070001f0f800 0000001ff8000070001e07800 0000003cf0000078001e03800 0000003870000033001e03800 000000307800003fc01e03800 000000703800007fe00e03800 000000703800007ce00e03800 000000703c000078700703800 000000701e0000f0700701000 000000701e0000e0700300000 000000700f0001c0700000000 0000006007800380600000000 000000e003e00700600000000 000000e001fe7e00600000000 000000e000fffc00e00000000 000000e0000ff000e00000000 000000f800038000e00000000 000000fff0000000e00000000 000000fffff00000e00000000 00000003ffffe000c00000000 0000000007ffffc0c00000000 000000000007ffffc00000000 0000000000000fffc00000000 000000000000001fc00000000 0000000000000000000000000 0000000000000000000000000 0000000000000000000000000 0000000000000000000000000 0000000000000000000000000 0000000000000000000000000 0000000000000000000000000 0000000000000000000000000 0000000000000000000000000 150 38 00000000000000000000000000000000000000 00000000000000000000000000000000000000 00000000000000000000000000000000000000 00000000000000000000000000000000000000 00000000000000000000000000000000000000 00000000000000000000000000000000000000 00000000000000000000000000000000000000 00000000000000000000000000000000000000 00000000000000000000000000003000000000 00000f80000000001fff000000007800000000 00001fe0000000007fff80000000ff00000000 00007ff000000000ffffe0000001ff80000000 00007ff800000003fffff0000001fffc000000 0000f8f800000007fffffc000001fffe000000 0001f07c0000000ffffffe000000ffff000000 0001e03c0000001fffffff000000ffff800000 0001e01c0000003fffffff0000007fffc00000 0001c01c0000003fffffff8000007fefc00000 0003c01e0000007fffffffc000003f83c00000 0003c01e000000ffffffffc000001f81e00000 0001c01c000000fffc0fffe000001f01e00000 0001c01c000001fff003ffe000000f01e00000 0001e01c000001ffe001fff000000f00e00000 0001e03c000003ffc0007ff000001e00f00000 0000e03c000003ff80007ff800001e00f00000 0000f038000007ff80003ff800001e00f00000 0000f078000007ff00003ff800001e00f00000 00007870000007ff00001ffc00000e00e00000 000038f000000fff00001ffc00000e00e00000 00003ce000000ffe00000ffc00000e00e00000 00781fc0f0000ffe00000ffc00000f00e00000 007ffffff0000ffc00000ffc00000f01e00000 007ffffff0000ffc00000ffc00000f01e00000 007ffffff0000ffc00000ffc00000701c00000 007ffffff0000ffc00000ffc00000781c00000 007fcf81f0000ffc000007fc00000783c00000 00000f8000000ffc000007fc00000383800000 00000f8000000ffc000007fc000003c7800000 00000f8000000ffc000007fc000001c7800000 00000f8000000ffc000007fc000001e7000000 00000f8000000ffc000007fc000200ef008000 00000fc000000ffc00000ffc0003f8fe3f8000 00000fc000000ffc00000ffc0003ffffff8000 00000fc000000ffc00000ffc0003ffffff8000 00000fc000000ffc00000ffc0003ffffff8000 00001fc000000ffc00000ffc0003ffffff8000 00001fc0000007fe00000ff80003ffffff8000 00001fc0000007fe00000ff80003fffdff8000 00001fc0000007fe00000ff80003c03c000000 00001fe0000007ff00001ff80000007c000000 00001fe0000003ff00001ff00000007c000000 00001fe0000003ff00001ff00000007c000000 00001fe0000001ff80003ff00000007c000000 00003fe0000001ff80003fe00000007c000000 00003fe0000001ff80003fe00000007c000000 00003fe0000000ffc0007fe00000007c000000 00003fe0000000ffc0007fc00000007c000000 000000000000007fe0007fc00000007c000000 000000000000007fe000ff800000007c000000 000000000000007ff001ff800000007c000000 000000000000003ff001ff800000007c000000 000000000000001ff803ff000000007c002000 000000000000001ff803ff000000007c006000 000000000000000ffc07fe000000007c006000 000000000000000ffc0ffc000000007c00c000 000000000000000ffe0ffc000000003e01c000 0000000000000007ff0ff8000000003f03c000 0000000000000003ff1ff0000000003f8f8000 0000000003c00001ffbff00000f0001fff8000 0000000003ffc001ffffe0007ff0000fff8000 0000000003fffff1ffffe3fffff00007ff8000 0000000003fffffffffffffffff00001ff0000 0000000003fffffffffffffffff00000ff0000 0000000003fffffffffffffffff000007f0000 0000000003fffffffffffffffff000001e0000 0000000003fffffffffffffffff000000e0000 0000000003fffffffffffffffff00000020000 0000000003fffffffffffffffff00000000000 0000000003fffffffffffffffff00000000000 0000000003fffffffffffffffff00000000000 0000000003fffffffffffffffff00000000000 0000000003fffffffffffffffff00000000000 0000000003fffffffffffffffff00000000000 0000000003fffffc1ffe0007fff00000000000 0000000003ff80000ffe000000f00000000000 00000000038000000ffe000000000000000000 00000000000000001fff000000000000000000 00000000000000001fff000000000000000000 00000000000000001fff000000000000000000 00000000000000001fff000000000000000000 00000000000000001fff000000000000000000 00000000000000001fff000000000000000000 00000000000000003fff000000000000000000 00000000000000003fff000000000000000000 00000000000000003fff0000000fc000000000 000000000fe000003fff8000003ff000000000 000000003ffc00003fff8000007ffc00000000 00000000fffe00003fff800000fcfc00000000 00000001f01f00003fff800001f03e00000000 00000003e00f80003fff800003e01f00000000 00000003e00780003fff800003e00f00000000 00000003e00780003fff800003c00f00000000 00000003e00f80003fff800003c00f00000000 00000001f00f00007fff800003c00f00000000 00000000f81e00007fffc00003e00f00000000 000000007c3c00007fffc00001e01e00000000 000000003e7800007fffc00000f01e00000000 000000fffffffe007fffc00000f03c00000000 000000fffffffe007fffc00000787800000000 000000fffffffe007fffc000003cf000000000 0000000007c000007fffe000f81fe07c000000 0000000007e000007fffe000fffffffc000000 0000000007e000007fffe000fffffffc000000 000000000fe000007fffe000fffffffc000000 000000000ff00000ffffe000ffc7c0fc000000 000000000ff00000ffffe0000007c000000000 000000001ff00000ffffe000000fc000000000 000000001ff00000ffffe000000fc000000000 000000001ff80000ffffe000000fc000000000 000000001ff80000ffffe000000fc000000000 000000003ff80001ffffe000000fe000000000 000000003ff80001ffffe000000fe000000000 0000000000000001fffff000001fe000000000 0000000000000001fffff000001fe000000000 0000000000000001fffff000001fe000000000 0000000000000001fffff000001ff000000000 0000000000000001fffff000001ff000000000 0000000000000001fffff000001ff000000000 0000000000000001fffff000003ff000000000 0000000000000001fffff000003ff000000000 0000000000000001fffff000003ff000000000 0000000000000001fffff80000000000000000 0000000000000003fffff80000000000000000 0000000000000003fffff80000000000000000 0000000000000003fffff80000000000000000 0000000000000003fffff80000000000000000 0000000000000003fffff80000000000000000 0000000000000003fffff80000000000000000 0000000000000003fffff80000000000000000 0000000000000003fffffc0000000000000000 0000000000000003fffffc0000000000000000 0000000000000007fffffc0000000000000000 0000000000000007fffffc0000000000000000 0000000000000007fffffc0000000000000000 00000000000000000000000000000000000000 00000000000000000000000000000000000000 00000000000000000000000000000000000000 00000000000000000000000000000000000000 00000000000000000000000000000000000000 00000000000000000000000000000000000000 0 0
Case 1: A
Case 2: WW
Case 3: AKW
Case 4: DWWW
Case 5: WWWWWWWW
Case 6: J
Case 7: ADJKSW
Case 8: WWWWWWWWWWWWWWWWWWWW
Case 9: AKW
Case 10: AAAAA