From 9986db42ac9c56ea0f396fc5dab2751e771f665d Mon Sep 17 00:00:00 2001 From: Dnomd343 Date: Thu, 5 Jan 2023 17:26:29 +0800 Subject: [PATCH] feat: generate short code mark --- all_cases/mark.h | 294 ++++++++++++++++++++++++++++++++++++++++ all_cases/short_code.cc | 42 +++--- 2 files changed, 315 insertions(+), 21 deletions(-) create mode 100644 all_cases/mark.h diff --git a/all_cases/mark.h b/all_cases/mark.h new file mode 100644 index 0000000..30e1cfd --- /dev/null +++ b/all_cases/mark.h @@ -0,0 +1,294 @@ +#pragma once + +#include + +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, + }, +}; diff --git a/all_cases/short_code.cc b/all_cases/short_code.cc index e117aab..4b3b547 100644 --- a/all_cases/short_code.cc +++ b/all_cases/short_code.cc @@ -2,6 +2,7 @@ #include #include #include "all_cases.h" +#include "mark.h" // TODO: try to remove: `0` `O` `I` `l` @@ -123,33 +124,32 @@ 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]) { - ++index[range >> 24]; + 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]; + } + 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 << "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 - // std::cout << code_to_string(14323231) << std::endl; // std::cout << code_from_string("8IzVj") << std::endl;