Browse Source

feat: generate short code mark

legacy
Dnomd343 2 years ago
parent
commit
9986db42ac
  1. 294
      all_cases/mark.h
  2. 40
      all_cases/short_code.cc

294
all_cases/mark.h

@ -0,0 +1,294 @@
#pragma once
#include <stdint.h>
const uint32_t SHORT_CODE_MARK[16][0x100] = {
{
70039, 0, 25594, 70039, 25594, 9527, 9324, 25594, 22458, 0, 9527, 22458, 70039, 0, 25594, 70039,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25594, 9527, 9324, 25594, 0, 0, 0, 0, 8028, 3361, 2867, 7887, 25594, 9309, 9126, 25187,
70039, 0, 25594, 70039, 25594, 9309, 9126, 25187, 22458, 0, 9309, 22143, 70039, 0, 25187, 69216,
25594, 9527, 9324, 25594, 0, 0, 0, 0, 9386, 3308, 3316, 9177, 25594, 9309, 9126, 25187,
9527, 3361, 2990, 9309, 3361, 1162, 926, 2952, 3307, 1016, 1031, 2914, 9309, 2952, 2644, 8401,
8028, 3361, 2867, 7887, 0, 0, 0, 0, 3308, 1162, 1017, 2914, 7887, 2952, 2560, 7225,
25594, 9309, 9126, 25187, 0, 0, 0, 0, 9177, 2914, 2918, 8297, 25187, 8401, 8268, 23306,
25594, 9527, 9324, 25594, 0, 0, 0, 0, 9386, 3308, 3316, 9177, 25594, 9309, 9126, 25187,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9527, 3361, 2990, 9309, 3361, 1162, 926, 2952, 3307, 1016, 1031, 2914, 9309, 2952, 2644, 8401,
25594, 9309, 9126, 25187, 0, 0, 0, 0, 9177, 2914, 2918, 8297, 25187, 8401, 8268, 23306,
70039, 0, 25594, 70039, 25594, 9309, 9126, 25187, 22458, 0, 9309, 22143, 70039, 0, 25187, 69216,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25594, 9309, 9126, 25187, 0, 0, 0, 0, 7887, 2952, 2560, 7225, 25187, 8401, 8268, 23306,
70039, 0, 25187, 69216, 25187, 8401, 8268, 23306, 22143, 0, 8401, 20624, 69216, 0, 23306, 65162,
},
{
70039, 0, 25594, 70039, 0, 0, 0, 0, 25594, 0, 9386, 25594, 70039, 0, 25594, 70039,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25594, 9527, 9324, 25594, 0, 0, 0, 0, 9527, 3361, 2990, 9309, 25594, 9309, 9126, 25187,
70039, 0, 25594, 70039, 0, 0, 0, 0, 25594, 0, 9177, 25187, 70039, 0, 25187, 69216,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25594, 9527, 9324, 25594, 0, 0, 0, 0, 9386, 3308, 3316, 9177, 25594, 9309, 9126, 25187,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9527, 3361, 2990, 9309, 3361, 1162, 926, 2952, 3307, 1016, 1031, 2914, 9309, 2952, 2644, 8401,
25594, 9309, 9126, 25187, 0, 0, 0, 0, 9177, 2914, 2918, 8297, 25187, 8401, 8268, 23306,
70039, 0, 25594, 70039, 0, 0, 0, 0, 25594, 0, 9177, 25187, 70039, 0, 25187, 69216,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25594, 9309, 9126, 25187, 0, 0, 0, 0, 9309, 2952, 2644, 8401, 25187, 8401, 8268, 23306,
70039, 0, 25187, 69216, 0, 0, 0, 0, 25187, 0, 8297, 23306, 69216, 0, 23306, 65162,
},
{
70039, 0, 22458, 70039, 25594, 9527, 9324, 25594, 25594, 0, 9527, 25594, 70039, 0, 22458, 70039,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25594, 9527, 9324, 25594, 0, 0, 0, 0, 9527, 3361, 2990, 9309, 25594, 9309, 9126, 25187,
70039, 0, 22458, 70039, 25594, 9309, 9126, 25187, 25594, 0, 9309, 25187, 70039, 0, 22143, 69216,
25594, 9527, 9324, 25594, 0, 0, 0, 0, 9527, 0, 3307, 9309, 25594, 9309, 9126, 25187,
9527, 3361, 2990, 9309, 3361, 1162, 926, 2952, 3307, 1016, 1031, 2914, 9309, 2952, 2644, 8401,
9527, 3361, 2990, 9309, 0, 0, 0, 0, 3361, 1162, 926, 2952, 9309, 2952, 2644, 8401,
25594, 9309, 9126, 25187, 0, 0, 0, 0, 9309, 0, 2914, 8401, 25187, 8401, 8268, 23306,
25594, 9527, 9324, 25594, 0, 0, 0, 0, 9527, 0, 3307, 9309, 25594, 9309, 9126, 25187,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9527, 3361, 2990, 9309, 3361, 1162, 926, 2952, 3307, 1016, 1031, 2914, 9309, 2952, 2644, 8401,
25594, 9309, 9126, 25187, 0, 0, 0, 0, 9309, 0, 2914, 8401, 25187, 8401, 8268, 23306,
70039, 0, 22458, 70039, 25594, 9309, 9126, 25187, 25594, 0, 9309, 25187, 70039, 0, 22143, 69216,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25594, 9309, 9126, 25187, 0, 0, 0, 0, 9309, 2952, 2644, 8401, 25187, 8401, 8268, 23306,
70039, 0, 22143, 69216, 25187, 8401, 8268, 23306, 25187, 0, 8401, 23306, 69216, 0, 20624, 65162,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
},
{
62844, 0, 22518, 62844, 22460, 9527, 8397, 22460, 22460, 0, 9527, 22460, 62844, 0, 22518, 62844,
22460, 9527, 8397, 22460, 0, 0, 0, 0, 9527, 0, 3361, 9309, 22460, 9309, 8223, 22144,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
62844, 0, 22518, 62844, 22460, 9309, 8223, 22144, 22460, 0, 9309, 22144, 62844, 0, 22197, 62136,
22460, 9527, 8397, 22460, 0, 0, 0, 0, 9527, 0, 3361, 9309, 22460, 9309, 8223, 22144,
9527, 0, 3308, 9309, 3361, 1162, 926, 2952, 3361, 0, 1162, 2952, 9309, 0, 2914, 8401,
9527, 0, 3308, 9309, 0, 0, 0, 0, 3361, 1162, 926, 2952, 9309, 0, 2914, 8401,
22460, 9309, 8223, 22144, 0, 0, 0, 0, 9309, 0, 2952, 8401, 22144, 8401, 7475, 20624,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
62844, 0, 22518, 62844, 22460, 9309, 8223, 22144, 22460, 0, 9309, 22144, 62844, 0, 22197, 62136,
22460, 9309, 8223, 22144, 0, 0, 0, 0, 9309, 0, 2952, 8401, 22144, 8401, 7475, 20624,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
62844, 0, 22197, 62136, 22144, 8401, 7475, 20624, 22144, 0, 8401, 20624, 62136, 0, 20662, 58644,
},
{
48001, 0, 19802, 48001, 19802, 0, 8397, 19802, 0, 0, 0, 0, 48001, 0, 19802, 48001,
19802, 0, 8397, 19802, 0, 0, 0, 0, 8169, 0, 3361, 8019, 19802, 0, 8223, 19549,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
48001, 0, 19802, 48001, 19802, 0, 8223, 19549, 0, 0, 0, 0, 48001, 0, 19549, 47574,
19802, 0, 8397, 19802, 0, 0, 0, 0, 8169, 0, 3361, 8019, 19802, 0, 8223, 19549,
8169, 0, 3361, 8019, 0, 0, 0, 0, 3361, 0, 1162, 2952, 8019, 0, 2952, 7329,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
19802, 0, 8223, 19549, 0, 0, 0, 0, 8019, 0, 2952, 7329, 19549, 0, 7475, 18300,
19802, 0, 8169, 19802, 8169, 0, 3361, 8019, 0, 0, 0, 0, 19802, 0, 8019, 19549,
8169, 0, 3361, 8019, 0, 0, 0, 0, 3361, 0, 1016, 2952, 8019, 0, 2952, 7329,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
19802, 0, 8019, 19549, 8019, 0, 2952, 7329, 0, 0, 0, 0, 19549, 0, 7329, 18300,
48001, 0, 19802, 48001, 19802, 0, 8223, 19549, 0, 0, 0, 0, 48001, 0, 19549, 47574,
19802, 0, 8223, 19549, 0, 0, 0, 0, 8019, 0, 2952, 7329, 19549, 0, 7475, 18300,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
48001, 0, 19549, 47574, 19549, 0, 7475, 18300, 0, 0, 0, 0, 47574, 0, 18300, 45324,
},
{
62844, 0, 0, 62844, 22518, 9527, 8281, 22518, 0, 0, 0, 0, 62844, 0, 0, 62844,
22518, 9527, 8281, 22518, 0, 0, 0, 0, 0, 0, 0, 0, 22518, 9309, 8112, 22197,
22460, 0, 0, 22460, 9527, 0, 3308, 9309, 0, 0, 0, 0, 22460, 0, 0, 22144,
62844, 0, 0, 62844, 22518, 9309, 8112, 22197, 0, 0, 0, 0, 62844, 0, 0, 62136,
22518, 9527, 8281, 22518, 0, 0, 0, 0, 0, 0, 0, 0, 22518, 9309, 8112, 22197,
9527, 0, 3361, 9309, 3308, 1162, 1017, 2914, 3308, 0, 1162, 2914, 9309, 0, 2952, 8401,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
22518, 9309, 8112, 22197, 0, 0, 0, 0, 0, 0, 0, 0, 22197, 8401, 7384, 20662,
22518, 0, 0, 22518, 9527, 0, 3361, 9309, 0, 0, 0, 0, 22518, 0, 0, 22197,
9527, 0, 3361, 9309, 0, 0, 0, 0, 0, 0, 0, 0, 9309, 0, 2952, 8401,
9527, 0, 0, 9309, 3308, 1162, 1017, 2914, 0, 0, 0, 0, 9309, 0, 0, 8401,
22518, 0, 0, 22197, 9309, 0, 2952, 8401, 0, 0, 0, 0, 22197, 0, 0, 20662,
62844, 0, 0, 62844, 22518, 9309, 8112, 22197, 0, 0, 0, 0, 62844, 0, 0, 62136,
22518, 9309, 8112, 22197, 0, 0, 0, 0, 0, 0, 0, 0, 22197, 8401, 7384, 20662,
22460, 0, 0, 22144, 9309, 0, 2914, 8401, 0, 0, 0, 0, 22144, 0, 0, 20624,
62844, 0, 0, 62136, 22197, 8401, 7384, 20662, 0, 0, 0, 0, 62136, 0, 0, 58644,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
},
{
48001, 0, 17580, 48001, 19802, 8397, 0, 19802, 15040, 0, 6375, 15040, 48001, 0, 17580, 48001,
19802, 8397, 0, 19802, 0, 0, 0, 0, 7287, 2928, 0, 7155, 19802, 8223, 0, 19549,
16794, 0, 6012, 16794, 8397, 0, 0, 8223, 6016, 0, 2496, 5937, 16794, 0, 5934, 16620,
48001, 0, 17580, 48001, 19802, 8223, 0, 19549, 15040, 0, 6267, 14882, 48001, 0, 17370, 47574,
19802, 8397, 0, 19802, 0, 0, 0, 0, 7287, 2928, 0, 7155, 19802, 8223, 0, 19549,
8397, 2929, 0, 8223, 2929, 1031, 913, 2602, 0, 0, 0, 0, 8223, 2602, 0, 7475,
6016, 2929, 0, 5937, 0, 0, 0, 0, 2496, 1031, 0, 2252, 5937, 2602, 0, 5531,
19802, 8223, 0, 19549, 0, 0, 0, 0, 7155, 2602, 0, 6561, 19549, 7475, 0, 18300,
19802, 0, 7287, 19802, 8397, 2929, 0, 8223, 6016, 0, 2496, 5937, 19802, 0, 7155, 19549,
8397, 2929, 0, 8223, 0, 0, 0, 0, 2928, 1031, 0, 2602, 8223, 2602, 0, 7475,
8397, 0, 2928, 8223, 2929, 1031, 913, 2602, 2929, 0, 1031, 2602, 8223, 0, 2602, 7475,
19802, 0, 7155, 19549, 8223, 2602, 0, 7475, 5937, 0, 2252, 5531, 19549, 0, 6561, 18300,
48001, 0, 17580, 48001, 19802, 8223, 0, 19549, 15040, 0, 6267, 14882, 48001, 0, 17370, 47574,
19802, 8223, 0, 19549, 0, 0, 0, 0, 7155, 2602, 0, 6561, 19549, 7475, 0, 18300,
16794, 0, 5934, 16620, 8223, 0, 0, 7475, 5937, 0, 2252, 5531, 16620, 0, 5530, 15698,
48001, 0, 17370, 47574, 19549, 7475, 0, 18300, 14882, 0, 5779, 14070, 47574, 0, 16318, 45324,
},
{
39202, 0, 13860, 39202, 13860, 5741, 5741, 13860, 13860, 0, 5741, 13860, 39202, 0, 13860, 39202,
13860, 5741, 5741, 13860, 0, 0, 0, 0, 4925, 1936, 1998, 4857, 13860, 5652, 5652, 13716,
13860, 0, 4756, 13860, 5741, 0, 2323, 5652, 5741, 0, 2323, 5652, 13860, 0, 4701, 13716,
39202, 0, 13860, 39202, 13860, 5652, 5652, 13716, 13860, 0, 5652, 13716, 39202, 0, 13716, 38880,
13860, 5741, 5741, 13860, 0, 0, 0, 0, 4925, 1936, 1998, 4857, 13860, 5652, 5652, 13716,
5741, 2323, 0, 5652, 2323, 821, 0, 2088, 2323, 821, 0, 2088, 5652, 2088, 0, 5232,
4756, 2323, 1936, 4701, 0, 0, 0, 0, 1936, 821, 703, 1772, 4701, 2088, 1772, 4411,
13860, 5652, 5652, 13716, 0, 0, 0, 0, 4857, 1772, 1814, 4529, 13716, 5232, 5232, 12972,
13860, 0, 4925, 13860, 5741, 2323, 0, 5652, 4756, 0, 1936, 4701, 13860, 0, 4857, 13716,
5741, 2323, 0, 5652, 0, 0, 0, 0, 1936, 821, 0, 1772, 5652, 2088, 0, 5232,
5741, 0, 1936, 5652, 2323, 821, 0, 2088, 2323, 0, 821, 2088, 5652, 0, 1772, 5232,
13860, 0, 4857, 13716, 5652, 2088, 0, 5232, 4701, 0, 1772, 4411, 13716, 0, 4529, 12972,
39202, 0, 13860, 39202, 13860, 5652, 5652, 13716, 13860, 0, 5652, 13716, 39202, 0, 13716, 38880,
13860, 5652, 5652, 13716, 0, 0, 0, 0, 4857, 1772, 1814, 4529, 13716, 5232, 5232, 12972,
13860, 0, 4701, 13716, 5652, 0, 2088, 5232, 5652, 0, 2088, 5232, 13716, 0, 4411, 12972,
39202, 0, 13716, 38880, 13716, 5232, 5232, 12972, 13716, 0, 5232, 12972, 38880, 0, 12972, 37152,
},
{
48001, 0, 19802, 48001, 17580, 6375, 6466, 17580, 16794, 0, 8397, 16794, 48001, 0, 19802, 48001,
17580, 6375, 6466, 17580, 0, 0, 0, 0, 7287, 2496, 2611, 7155, 17580, 6267, 6357, 17370,
15040, 0, 6016, 15040, 6375, 0, 2240, 6267, 6016, 0, 2929, 5937, 15040, 0, 5937, 14882,
48001, 0, 19802, 48001, 17580, 6267, 6357, 17370, 16794, 0, 8223, 16620, 48001, 0, 19549, 47574,
17580, 6375, 6466, 17580, 0, 0, 0, 0, 7287, 2496, 2611, 7155, 17580, 6267, 6357, 17370,
6375, 2496, 2232, 6267, 2496, 1031, 0, 2252, 2240, 783, 810, 2024, 6267, 2252, 2020, 5779,
6012, 2496, 2178, 5934, 0, 0, 0, 0, 2928, 1031, 914, 2602, 5934, 2252, 1982, 5530,
17580, 6267, 6357, 17370, 0, 0, 0, 0, 7155, 2252, 2332, 6561, 17370, 5779, 5857, 16318,
17580, 0, 7287, 17580, 6375, 2496, 2232, 6267, 6012, 0, 2928, 5934, 17580, 0, 7155, 17370,
6375, 2496, 2232, 6267, 0, 0, 0, 0, 2496, 1031, 782, 2252, 6267, 2252, 2020, 5779,
6375, 0, 2496, 6267, 2496, 1031, 0, 2252, 2496, 0, 1031, 2252, 6267, 0, 2252, 5779,
17580, 0, 7155, 17370, 6267, 2252, 2020, 5779, 5934, 0, 2602, 5530, 17370, 0, 6561, 16318,
48001, 0, 19802, 48001, 17580, 6267, 6357, 17370, 16794, 0, 8223, 16620, 48001, 0, 19549, 47574,
17580, 6267, 6357, 17370, 0, 0, 0, 0, 7155, 2252, 2332, 6561, 17370, 5779, 5857, 16318,
15040, 0, 5937, 14882, 6267, 0, 2024, 5779, 5937, 0, 2602, 5531, 14882, 0, 5531, 14070,
48001, 0, 19549, 47574, 17370, 5779, 5857, 16318, 16620, 0, 7475, 15698, 47574, 0, 18300, 45324,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
},
{
62844, 0, 22880, 62844, 22518, 8281, 9527, 22518, 20212, 0, 8542, 20212, 62844, 0, 22880, 62844,
22518, 8281, 9527, 22518, 0, 0, 0, 0, 8227, 2876, 3370, 8067, 22518, 8112, 9309, 22197,
19968, 0, 7112, 19968, 8281, 0, 3308, 8112, 7282, 0, 2990, 7152, 19968, 0, 6996, 19701,
62844, 0, 22880, 62844, 22518, 8112, 9309, 22197, 20212, 0, 8358, 19937, 62844, 0, 22540, 62136,
22518, 8281, 9527, 22518, 0, 0, 0, 0, 8227, 2876, 3370, 8067, 22518, 8112, 9309, 22197,
8281, 2937, 2867, 8112, 2937, 1031, 810, 2606, 3308, 1017, 1162, 2914, 8112, 2606, 2560, 7384,
7088, 2937, 2937, 6975, 0, 0, 0, 0, 2920, 1031, 1031, 2598, 6975, 2606, 2606, 6429,
22518, 8112, 9309, 22197, 0, 0, 0, 0, 8067, 2564, 2956, 7357, 22197, 7384, 8401, 20662,
22518, 0, 8227, 22518, 8281, 2937, 2867, 8112, 7088, 0, 2920, 6975, 22518, 0, 8067, 22197,
8281, 2937, 2867, 8112, 0, 0, 0, 0, 2876, 1031, 886, 2564, 8112, 2606, 2560, 7384,
8281, 0, 2876, 8112, 2937, 1031, 810, 2606, 2937, 0, 1031, 2606, 8112, 0, 2564, 7384,
22518, 0, 8067, 22197, 8112, 2606, 2560, 7384, 6975, 0, 2598, 6429, 22197, 0, 7357, 20662,
62844, 0, 22880, 62844, 22518, 8112, 9309, 22197, 20212, 0, 8358, 19937, 62844, 0, 22540, 62136,
22518, 8112, 9309, 22197, 0, 0, 0, 0, 8067, 2564, 2956, 7357, 22197, 7384, 8401, 20662,
19968, 0, 6996, 19701, 8112, 0, 2914, 7384, 7152, 0, 2644, 6560, 19701, 0, 6442, 18410,
62844, 0, 22540, 62136, 22197, 7384, 8401, 20662, 19937, 0, 7580, 18616, 62136, 0, 20944, 58644,
},
{
48001, 0, 17580, 48001, 17580, 6466, 6375, 17580, 15222, 0, 6466, 15222, 48001, 0, 17580, 48001,
17580, 6466, 6375, 17580, 0, 0, 0, 0, 6461, 2269, 2286, 6354, 17580, 6357, 6267, 17370,
15222, 0, 5456, 15222, 6466, 0, 2240, 6357, 5465, 0, 2270, 5391, 15222, 0, 5385, 15063,
48001, 0, 17580, 48001, 17580, 6357, 6267, 17370, 15222, 0, 6357, 15063, 48001, 0, 17370, 47574,
17580, 6466, 6375, 17580, 0, 0, 0, 0, 6461, 2269, 2286, 6354, 17580, 6357, 6267, 17370,
6466, 2270, 2277, 6357, 2270, 821, 716, 2050, 2240, 705, 810, 2024, 6357, 2050, 2054, 5857,
5456, 2270, 1952, 5385, 0, 0, 0, 0, 2269, 821, 717, 2050, 5385, 2050, 1780, 5023,
17580, 6357, 6267, 17370, 0, 0, 0, 0, 6354, 2050, 2058, 5856, 17370, 5857, 5779, 16318,
17580, 0, 6461, 17580, 6466, 2270, 2277, 6357, 5456, 0, 2269, 5385, 17580, 0, 6354, 17370,
6466, 2270, 2277, 6357, 0, 0, 0, 0, 2269, 821, 716, 2050, 6357, 2050, 2054, 5857,
6466, 0, 2269, 6357, 2270, 821, 716, 2050, 2270, 0, 821, 2050, 6357, 0, 2050, 5857,
17580, 0, 6354, 17370, 6357, 2050, 2054, 5857, 5385, 0, 2050, 5023, 17370, 0, 5856, 16318,
48001, 0, 17580, 48001, 17580, 6357, 6267, 17370, 15222, 0, 6357, 15063, 48001, 0, 17370, 47574,
17580, 6357, 6267, 17370, 0, 0, 0, 0, 6354, 2050, 2058, 5856, 17370, 5857, 5779, 16318,
15222, 0, 5385, 15063, 6357, 0, 2024, 5857, 5391, 0, 2050, 5025, 15063, 0, 5023, 14238,
48001, 0, 17370, 47574, 17370, 5857, 5779, 16318, 15063, 0, 5857, 14238, 47574, 0, 16318, 45324,
},
{
62844, 0, 22518, 62844, 22880, 8542, 8542, 22880, 19968, 0, 8281, 19968, 62844, 0, 22518, 62844,
22880, 8542, 8542, 22880, 0, 0, 0, 0, 8227, 2920, 2983, 8067, 22880, 8358, 8358, 22540,
20212, 0, 7088, 20212, 8542, 0, 3037, 8358, 7282, 0, 2937, 7152, 20212, 0, 6975, 19937,
62844, 0, 22518, 62844, 22880, 8358, 8358, 22540, 19968, 0, 8112, 19701, 62844, 0, 22197, 62136,
22880, 8542, 8542, 22880, 0, 0, 0, 0, 8227, 2920, 2983, 8067, 22880, 8358, 8358, 22540,
8542, 2990, 2650, 8358, 2990, 1031, 915, 2644, 3037, 926, 939, 2678, 8358, 2644, 2362, 7580,
7112, 2990, 2603, 6996, 0, 0, 0, 0, 2876, 1031, 913, 2564, 6996, 2644, 2328, 6442,
22880, 8358, 8358, 22540, 0, 0, 0, 0, 8067, 2598, 2640, 7357, 22540, 7580, 7580, 20944,
22880, 0, 8227, 22880, 8542, 2990, 2650, 8358, 7112, 0, 2876, 6996, 22880, 0, 8067, 22540,
8542, 2990, 2650, 8358, 0, 0, 0, 0, 2920, 1031, 808, 2598, 8358, 2644, 2362, 7580,
8542, 0, 2920, 8358, 2990, 1031, 915, 2644, 2990, 0, 1031, 2644, 8358, 0, 2598, 7580,
22880, 0, 8067, 22540, 8358, 2644, 2362, 7580, 6996, 0, 2564, 6442, 22540, 0, 7357, 20944,
62844, 0, 22518, 62844, 22880, 8358, 8358, 22540, 19968, 0, 8112, 19701, 62844, 0, 22197, 62136,
22880, 8358, 8358, 22540, 0, 0, 0, 0, 8067, 2598, 2640, 7357, 22540, 7580, 7580, 20944,
20212, 0, 6975, 19937, 8358, 0, 2678, 7580, 7152, 0, 2606, 6560, 19937, 0, 6429, 18616,
62844, 0, 22197, 62136, 22540, 7580, 7580, 20944, 19701, 0, 7384, 18410, 62136, 0, 20662, 58644,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
},
};

40
all_cases/short_code.cc

@ -2,6 +2,7 @@
#include <algorithm>
#include <unordered_map>
#include "all_cases.h"
#include "mark.h"
// TODO: try to remove: `0` `O` `I` `l`
@ -123,32 +124,31 @@ int main() {
// record start search point
std::cout << a.all_cases[6].size() << std::endl;
// std::cout << a.all_cases[6].size() << std::endl;
// printf("%08X\n", a.all_cases[6][0]);
// printf("%08X\n", a.all_cases[6][1]);
// printf("%08X\n", a.all_cases[6][2]);
uint32_t index[256] = {0};
for (auto &range : a.all_cases[6]) {
uint32_t index[256];
for (auto &all_case : a.all_cases) {
printf(" {\n");
for (uint32_t &tmp: index) {
tmp = 0;
}
for (auto &range: all_case) {
++index[range >> 24];
}
std::cout << "00: " << index[0x00] << std::endl;
std::cout << "01: " << index[0x01] << std::endl;
std::cout << "7D: " << index[0x7D] << std::endl;
std::cout << "7E: " << index[0x7E] << std::endl;
std::cout << "7F: " << index[0x7F] << std::endl;
std::cout << "FE: " << index[0xFE] << std::endl;
std::cout << "FF: " << index[0xFF] << std::endl;
// 1131628 -> 7C FF FF F0
// 1131629 -> 7D 00 00 00
// ...
// 1140029 -> 7D FF FF 00
// 1140030 -> 7E 00 00 00
// ...
// 1147413 -> 7E FF FF 00
// 1147414 -> 7F 00 00 00
for (int i = 0; i < 256; ++i) {
if (i % 16 == 0) {
printf(" ");
}
printf("%5d, ", index[i]);
if (i % 16 == 15) {
printf("\n");
}
}
printf(" },\n");
}
// std::cout << code_to_string(14323231) << std::endl;
// std::cout << code_from_string("8IzVj") << std::endl;

Loading…
Cancel
Save