|
|
@ -2,8 +2,9 @@ |
|
|
|
|
|
|
|
#include <cstdint> |
|
|
|
|
|
|
|
const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
/// --------------------------------------------------------------------- 0x0 ---------------------------------------------------------------------
|
|
|
|
namespace klotski { |
|
|
|
const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
/// --------------------------------------------------------------------- 0x0 ---------------------------------------------------------------------
|
|
|
|
0, 9527, 12991, 16067, 25594, 29058, 30527, 31657, 35121, 38525, 39766, 41041, 44445, 53972, 57436, 60512, |
|
|
|
70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, |
|
|
|
70039, 73445, 74914, 76019, 79425, 80894, 80894, 81362, 82831, 84047, 84573, 85031, 86247, 89653, 91122, 92227, |
|
|
@ -260,8 +261,8 @@ const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
2854438, 2854438, 2854438, 2854438, 2854438, 2854438, 2854438, 2854438, 2854438, 2854438, 2854438, 2854438, 2854438, 2854438, 2854438, 2854438, |
|
|
|
2854438, 2857844, 2859242, 2860307, 2863615, 2865013, 2865013, 2865367, 2866529, 2867702, 2868094, 2868444, 2869447, 2872755, 2873917, 2874830, |
|
|
|
2877744, 2887271, 2890632, 2893622, 2902931, 2906292, 2907454, 2908380, 2911332, 2914639, 2915655, 2916686, 2919600, 2928909, 2931861, 2934505, |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x1 ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x1 ---------------------------------------------------------------------
|
|
|
|
0, 9527, 12991, 16067, 25594, 29058, 30527, 31657, 35121, 38525, 39766, 41041, 44445, 53972, 57436, 60512, |
|
|
|
70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, |
|
|
|
70039, 73445, 74914, 76019, 79425, 80894, 80894, 81362, 82831, 84047, 84573, 85031, 86247, 89653, 91122, 92227, |
|
|
@ -518,8 +519,8 @@ const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
2171924, 2171924, 2171924, 2171924, 2171924, 2171924, 2171924, 2171924, 2171924, 2171924, 2171924, 2171924, 2171924, 2171924, 2171924, 2171924, |
|
|
|
2171924, 2175330, 2176728, 2177793, 2181101, 2182499, 2182499, 2182853, 2184015, 2185188, 2185580, 2185930, 2186933, 2190241, 2191403, 2192316, |
|
|
|
2195230, 2204757, 2208118, 2211108, 2220417, 2223778, 2224940, 2225866, 2228818, 2232125, 2233141, 2234172, 2237086, 2246395, 2249347, 2251991, |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x2 ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x2 ---------------------------------------------------------------------
|
|
|
|
0, 9527, 12991, 16067, 25594, 29058, 30527, 31657, 35121, 38525, 39766, 41041, 44445, 53972, 57436, 60512, |
|
|
|
70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, 70039, |
|
|
|
70039, 73503, 74972, 76102, 79566, 79566, 79566, 79566, 79566, 80807, 81333, 81729, 82970, 86434, 87903, 89033, |
|
|
@ -776,10 +777,10 @@ const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
2857120, 2857120, 2857120, 2857120, 2857120, 2857120, 2857120, 2857120, 2857120, 2857120, 2857120, 2857120, 2857120, 2857120, 2857120, 2857120, |
|
|
|
2857120, 2860584, 2861982, 2863068, 2866429, 2866429, 2866429, 2866429, 2866429, 2867623, 2868015, 2868327, 2869343, 2872704, 2873866, 2874792, |
|
|
|
2877744, 2887271, 2890632, 2893622, 2902931, 2906292, 2907454, 2908380, 2911332, 2914639, 2915655, 2916686, 2919600, 2928909, 2931861, 2934505, |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x3 ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x4 ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x3 ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x4 ---------------------------------------------------------------------
|
|
|
|
0, 9527, 9527, 12933, 22460, 25924, 27393, 28523, 31987, 35451, 35451, 36920, 40384, 49911, 49911, 53317, |
|
|
|
62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, |
|
|
|
62844, 66308, 67777, 68907, 72371, 72371, 72371, 72371, 72371, 73840, 73840, 74366, 75835, 79299, 80768, 81898, |
|
|
@ -1036,8 +1037,8 @@ const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
2242744, 2242744, 2242744, 2242744, 2242744, 2242744, 2242744, 2242744, 2242744, 2242744, 2242744, 2242744, 2242744, 2242744, 2242744, 2242744, |
|
|
|
2242744, 2246208, 2247606, 2248692, 2252053, 2252053, 2252053, 2252053, 2252053, 2253451, 2253451, 2253843, 2255005, 2258366, 2259528, 2260454, |
|
|
|
2263406, 2272933, 2272933, 2276241, 2285550, 2288911, 2290073, 2290999, 2293951, 2297312, 2297312, 2298474, 2301426, 2310735, 2310735, 2313649, |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x5 ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x5 ---------------------------------------------------------------------
|
|
|
|
0, 8169, 8169, 11633, 19802, 19802, 19802, 19802, 19802, 23266, 23266, 24735, 28199, 36368, 36368, 39832, |
|
|
|
48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, |
|
|
|
48001, 51465, 51465, 52706, 56170, 56170, 56170, 56170, 56170, 57639, 57639, 58165, 59634, 63098, 63098, 64339, |
|
|
@ -1294,8 +1295,8 @@ const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
1813321, 1813321, 1813321, 1813321, 1813321, 1813321, 1813321, 1813321, 1813321, 1813321, 1813321, 1813321, 1813321, 1813321, 1813321, 1813321, |
|
|
|
1813321, 1816785, 1816785, 1817979, 1821340, 1821340, 1821340, 1821340, 1821340, 1822738, 1822738, 1823130, 1824292, 1827653, 1827653, 1828669, |
|
|
|
1831621, 1839790, 1839790, 1843151, 1851170, 1851170, 1851170, 1851170, 1851170, 1854531, 1854531, 1855693, 1858645, 1866664, 1866664, 1869616, |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x6 ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x6 ---------------------------------------------------------------------
|
|
|
|
0, 9527, 9527, 12991, 22518, 25924, 27393, 28639, 32045, 35451, 35451, 36920, 40326, 49853, 49853, 53317, |
|
|
|
62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, |
|
|
|
62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, |
|
|
@ -1552,10 +1553,10 @@ const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, |
|
|
|
2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, 2263406, |
|
|
|
2263406, 2272933, 2272933, 2276294, 2285603, 2288911, 2290073, 2291090, 2294004, 2297312, 2297312, 2298474, 2301388, 2310697, 2310697, 2313649, |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x7 ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x8 ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x7 ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x8 ---------------------------------------------------------------------
|
|
|
|
0, 8397, 11405, 11405, 19802, 22810, 24085, 25191, 28199, 28199, 28199, 28199, 28199, 36596, 39604, 39604, |
|
|
|
48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, |
|
|
|
48001, 51007, 52282, 52282, 55288, 56563, 56563, 57019, 58294, 58294, 58294, 58294, 58294, 61300, 62575, 62575, |
|
|
@ -1812,8 +1813,8 @@ const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
2260408, 2260408, 2260408, 2260408, 2260408, 2260408, 2260408, 2260408, 2260408, 2260408, 2260408, 2260408, 2260408, 2260408, 2260408, 2260408, |
|
|
|
2260408, 2263414, 2264635, 2264635, 2267563, 2268784, 2268784, 2269134, 2270165, 2270165, 2270165, 2270165, 2270165, 2273093, 2274124, 2274124, |
|
|
|
2276726, 2285123, 2288052, 2288052, 2296275, 2299204, 2300235, 2301148, 2303750, 2303750, 2303750, 2303750, 2303750, 2311973, 2314575, 2314575, |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x9 ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0x9 ---------------------------------------------------------------------
|
|
|
|
0, 5741, 8119, 8119, 13860, 16238, 17223, 17223, 19601, 21979, 22964, 22964, 25342, 31083, 33461, 33461, |
|
|
|
39202, 39202, 39202, 39202, 39202, 39202, 39202, 39202, 39202, 39202, 39202, 39202, 39202, 39202, 39202, 39202, |
|
|
|
39202, 41172, 42157, 42157, 44127, 45112, 45112, 45112, 46097, 46913, 47321, 47321, 48137, 50107, 51092, 51092, |
|
|
@ -2070,8 +2071,8 @@ const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
1826821, 1826821, 1826821, 1826821, 1826821, 1826821, 1826821, 1826821, 1826821, 1826821, 1826821, 1826821, 1826821, 1826821, 1826821, 1826821, |
|
|
|
1826821, 1828791, 1829742, 1829742, 1831678, 1832629, 1832629, 1832629, 1833450, 1834245, 1834561, 1834561, 1835264, 1837200, 1838021, 1838021, |
|
|
|
1839793, 1845534, 1847857, 1847857, 1853509, 1855832, 1856653, 1856653, 1858741, 1861064, 1861885, 1861885, 1863973, 1869625, 1871713, 1871713, |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0xA ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0xA ---------------------------------------------------------------------
|
|
|
|
0, 6375, 8925, 11205, 17580, 20130, 21405, 21405, 23955, 26245, 27161, 28131, 30421, 36796, 39346, 41626, |
|
|
|
48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, |
|
|
|
48001, 50551, 51826, 52738, 55288, 56563, 56563, 56563, 57838, 58754, 59212, 59600, 60516, 63066, 64341, 65253, |
|
|
@ -2328,10 +2329,10 @@ const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
2258426, 2258426, 2258426, 2258426, 2258426, 2258426, 2258426, 2258426, 2258426, 2258426, 2258426, 2258426, 2258426, 2258426, 2258426, 2258426, |
|
|
|
2258426, 2260976, 2262197, 2263085, 2265581, 2266802, 2266802, 2266802, 2267833, 2268724, 2269074, 2269382, 2270165, 2272661, 2273692, 2274474, |
|
|
|
2276726, 2283101, 2285597, 2287829, 2294096, 2296592, 2297623, 2297623, 2299875, 2302115, 2302898, 2303708, 2305732, 2311999, 2314251, 2316271, |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0xB ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0xC ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0xB ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0xC ---------------------------------------------------------------------
|
|
|
|
0, 8281, 11299, 14237, 22518, 25536, 26811, 27781, 30799, 34205, 35451, 36920, 40326, 48607, 51625, 54563, |
|
|
|
62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, |
|
|
|
62844, 65794, 67069, 68121, 71071, 72346, 72346, 72746, 74021, 75233, 75759, 76285, 77497, 80447, 81722, 82774, |
|
|
@ -2588,8 +2589,8 @@ const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
2863318, 2863318, 2863318, 2863318, 2863318, 2863318, 2863318, 2863318, 2863318, 2863318, 2863318, 2863318, 2863318, 2863318, 2863318, 2863318, |
|
|
|
2863318, 2866268, 2867489, 2868509, 2871385, 2872606, 2872606, 2872918, 2873949, 2875119, 2875511, 2875903, 2876905, 2879781, 2880812, 2881698, |
|
|
|
2884262, 2892543, 2895480, 2898347, 2906459, 2909396, 2910427, 2911237, 2913843, 2917151, 2918168, 2919330, 2922244, 2930356, 2932962, 2935522, |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0xD ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0xD ---------------------------------------------------------------------
|
|
|
|
0, 6466, 8786, 11114, 17580, 19900, 20885, 21726, 24046, 26336, 27161, 28131, 30421, 36887, 39207, 41535, |
|
|
|
48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, 48001, |
|
|
|
48001, 50319, 51304, 52144, 54462, 55447, 55447, 55795, 56780, 57600, 57950, 58300, 59120, 61438, 62423, 63263, |
|
|
@ -2846,8 +2847,8 @@ const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
2198750, 2198750, 2198750, 2198750, 2198750, 2198750, 2198750, 2198750, 2198750, 2198750, 2198750, 2198750, 2198750, 2198750, 2198750, 2198750, |
|
|
|
2198750, 2201068, 2202019, 2202835, 2205104, 2206055, 2206055, 2206333, 2207154, 2207952, 2208230, 2208508, 2209212, 2211481, 2212302, 2213018, |
|
|
|
2215068, 2221534, 2223804, 2226081, 2232438, 2234708, 2235529, 2236245, 2238295, 2240535, 2241240, 2242050, 2244074, 2250431, 2252481, 2254535, |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0xE ---------------------------------------------------------------------
|
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0xE ---------------------------------------------------------------------
|
|
|
|
0, 8542, 11618, 14338, 22880, 25956, 27231, 28346, 31422, 34550, 35680, 36836, 39964, 48506, 51582, 54302, |
|
|
|
62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, 62844, |
|
|
|
62844, 65840, 67115, 68075, 71071, 72346, 72346, 72792, 74067, 75163, 75631, 76039, 77135, 80131, 81406, 82366, |
|
|
@ -3104,6 +3105,7 @@ const uint32_t RANGE_PREFIX_OFFSET[16][4096] = {{ |
|
|
|
2863600, 2863600, 2863600, 2863600, 2863600, 2863600, 2863600, 2863600, 2863600, 2863600, 2863600, 2863600, 2863600, 2863600, 2863600, 2863600, |
|
|
|
2863600, 2866596, 2867817, 2868747, 2871667, 2872888, 2872888, 2873234, 2874265, 2875324, 2875678, 2875994, 2876905, 2879825, 2880856, 2881664, |
|
|
|
2884262, 2892804, 2895794, 2898444, 2906802, 2909792, 2910823, 2911738, 2914382, 2917419, 2918345, 2919284, 2921962, 2930320, 2932964, 2935326, |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0xF ---------------------------------------------------------------------
|
|
|
|
}}; |
|
|
|
}, { |
|
|
|
/// --------------------------------------------------------------------- 0xF ---------------------------------------------------------------------
|
|
|
|
}}; |
|
|
|
} |
|
|
|