-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtable.cpp
More file actions
107 lines (104 loc) · 15.1 KB
/
table.cpp
File metadata and controls
107 lines (104 loc) · 15.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include "table.h"
#define inonce 16
#define outonce 16
#define in 16
#define w 16
#define out 16
#define b 16
#define pre 16
const int ins[][28]=
{{3, 16, 3, outonce, 32, 32, 1, 1, 3, 32767, 0, in, w, out, b, pre, 0, 0, 113763764, 32707, 393216, 113747380, 2490368, 1, 0, -1, 1, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 1, in, w, out, b, pre, 393216, 4587952, 113747380, 32707, 2490800, 113730996, 0, 32707, 0, -1, 2, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 2, in, w, out, b, pre, 2490800, 432, 113730996, 448, 4587968, 113714612, 6685120, 6685136, 1, -1, 3, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 3, in, w, out, b, pre, 4587968, 432, 113714612, 448, 6685152, 113698228, 113583540, 32707, 2, -1, 4, 11},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 0, in, w, out, b, pre, 6685152, 464, 113698228, 448, 8782304, 113681844, 10879456, 6685136, 3, -1, 5, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 1, in, w, out, b, pre, 8782304, 12978912, 113681844, 448, 10881760, 113665460, 0, 32707, 4, -1, 6, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 2, in, w, out, b, pre, 10881760, 2768, 113665460, 2784, 12978928, 113649076, 15076080, 15076096, 5, -1, 7, -1},
{16, 16, inonce, outonce, 32, 32, 1, 0, 3, 32767, 3, in, w, out, b, pre, 12978928, 2768, 113649076, 2784, 15076112, 113632692, 0, 32707, 6, -1, 8, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 0, in, w, out, b, pre, 15076112, 2800, 113632692, 2784, 17173264, 113616308, 19270416, 15076096, 7, -1, 9, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 1, in, w, out, b, pre, 17173264, 21369872, 113616308, 2784, 19272720, 113599924, 0, 32707, 8, -1, 10, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 2, in, w, out, b, pre, 19272720, 5104, 113599924, 5120, 21369888, 113583540, 23467040, 23467056, 9, -1, 11, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 5, in, w, out, b, pre, 21369888, 5104, 113583540, 5120, 23467072, 113567156, 0, 6685152, 10, 3, 12, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 3, in, w, out, b, pre, 23467072, 5104, 113567156, 5120, 25564224, 113550772, 113436084, 6685152, 11, -1, 13, 20},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 0, in, w, out, b, pre, 25564224, 5136, 113550772, 5120, 27661376, 113534388, 29758528, 23467056, 12, -1, 14, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 1, in, w, out, b, pre, 27661376, 31857984, 113534388, 5120, 29760832, 113518004, 0, 6685152, 13, -1, 15, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 2, in, w, out, b, pre, 29760832, 7440, 113518004, 7456, 31858000, 113501620, 33955152, 33955168, 14, -1, 16, -1},
{16, 16, inonce, outonce, 32, 32, 1, 0, 3, 32767, 3, in, w, out, b, pre, 31858000, 7440, 113501620, 7456, 33955184, 113485236, 0, 6685152, 15, -1, 17, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 0, in, w, out, b, pre, 33955184, 7472, 113485236, 7456, 36052336, 113468852, 38149488, 33955168, 16, -1, 18, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 1, in, w, out, b, pre, 36052336, 40248944, 113468852, 7456, 38151792, 113452468, 0, 6685152, 17, -1, 19, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 2, in, w, out, b, pre, 38151792, 9776, 113452468, 9792, 40248960, 113436084, 42346112, 42346128, 18, -1, 20, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 5, in, w, out, b, pre, 40248960, 9776, 113436084, 9792, 42346144, 113419700, 0, 25564224, 19, 12, 21, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 3, in, w, out, b, pre, 42346144, 9776, 113419700, 9792, 44443296, 113403316, 113288628, 25564224, 20, -1, 22, 29},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 0, in, w, out, b, pre, 44443296, 9808, 113403316, 9792, 46540448, 113386932, 48637600, 42346128, 21, -1, 23, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 1, in, w, out, b, pre, 46540448, 50737056, 113386932, 9792, 48639904, 113370548, 0, 25564224, 22, -1, 24, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 2, in, w, out, b, pre, 48639904, 12112, 113370548, 12128, 50737072, 113354164, 52834224, 52834240, 23, -1, 25, -1},
{16, 16, inonce, outonce, 32, 32, 1, 0, 3, 32767, 3, in, w, out, b, pre, 50737072, 12112, 113354164, 12128, 52834256, 113337780, 0, 25564224, 24, -1, 26, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 0, in, w, out, b, pre, 52834256, 12144, 113337780, 12128, 54931408, 113321396, 57028560, 52834240, 25, -1, 27, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 1, in, w, out, b, pre, 54931408, 59128016, 113321396, 12128, 57030864, 113305012, 0, 25564224, 26, -1, 28, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 2, in, w, out, b, pre, 57030864, 14448, 113305012, 14464, 59128032, 113288628, 61225184, 61225200, 27, -1, 29, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 5, in, w, out, b, pre, 59128032, 14448, 113288628, 14464, 61225216, 113272244, 0, 44443296, 28, 21, 30, -1},
{16, 16, inonce, outonce, 32, 32, 1, 1, 3, 32767, 3, in, w, out, b, pre, 61225216, 14448, 113272244, 14464, 63322368, 113255860, 113190324, 44443296, 29, -1, 31, 38},
{16, 32, inonce, outonce, 32, 32, 2, 1, 3, 32767, 0, in, w, out, b, pre, 63322368, 14480, 113255860, 14464, 65419520, 113247668, 66468096, 61225200, 30, -1, 32, -1},
{32, 32, inonce, outonce, 16, 16, 2, 1, 3, 32767, 1, in, w, out, b, pre, 65419520, 67521280, 113247668, 14464, 66472704, 113239476, 0, 44443296, 31, -1, 33, -1},
{32, 32, inonce, outonce, 16, 16, 2, 1, 3, 32767, 2, in, w, out, b, pre, 66472704, 19088, 113239476, 19120, 67521312, 113231284, 68569888, 68569920, 32, -1, 34, -1},
{32, 32, inonce, outonce, 16, 16, 2, 0, 3, 32767, 3, in, w, out, b, pre, 67521312, 19088, 113231284, 19120, 68569952, 113223092, 0, 44443296, 33, -1, 35, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 0, in, w, out, b, pre, 68569952, 19152, 113223092, 19120, 69618528, 113214900, 70667104, 68569920, 34, -1, 36, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 1, in, w, out, b, pre, 69618528, 71724896, 113214900, 19120, 70676320, 113206708, 0, 44443296, 35, -1, 37, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 2, in, w, out, b, pre, 70676320, 28368, 113206708, 28400, 71724928, 113165748, 72773504, 72773536, 36, -1, 41, -1},
{16, 32, inonce, outonce, 32, 32, 2, 0, 1, 32767, 0, in, w, out, b, pre, 63322368, 28432, 113190324, 28400, 72773568, 113182132, 73822144, 72773536, 30, -1, 39, -1},
{32, 32, inonce, outonce, 16, 16, 2, 0, 1, 32767, 1, in, w, out, b, pre, 72773568, 74871232, 113182132, 28400, 73822656, 113173940, 0, 44443296, 38, -1, 40, -1},
{32, 32, inonce, outonce, 16, 16, 2, 0, 1, 32767, 2, in, w, out, b, pre, 73822656, 28944, 113173940, 28976, 74871264, 113165748, 75919840, 75919872, 39, -1, 41, -1},
{32, 32, inonce, outonce, 16, 16, 2, 0, 1, 32767, 5, in, w, out, b, pre, 74871264, 28944, 113165748, 28976, 75919904, 113157556, 0, 71724928, 40, 37, 42, -1},
{32, 32, inonce, outonce, 16, 16, 2, 1, 1, 32767, 3, in, w, out, b, pre, 75919904, 28944, 113157556, 28976, 76968480, 113149364, 113092020, 71724928, 41, -1, 43, 50},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 0, in, w, out, b, pre, 76968480, 29008, 113149364, 28976, 78017056, 113141172, 79065632, 75919872, 42, -1, 44, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 1, in, w, out, b, pre, 78017056, 80123424, 113141172, 28976, 79074848, 113132980, 0, 71724928, 43, -1, 45, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 2, in, w, out, b, pre, 79074848, 38224, 113132980, 38256, 80123456, 113124788, 81172032, 81172064, 44, -1, 46, -1},
{32, 32, inonce, outonce, 16, 16, 1, 0, 3, 32767, 3, in, w, out, b, pre, 80123456, 38224, 113124788, 38256, 81172096, 113116596, 0, 71724928, 45, -1, 47, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 0, in, w, out, b, pre, 81172096, 38288, 113116596, 38256, 82220672, 113108404, 83269248, 81172064, 46, -1, 48, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 1, in, w, out, b, pre, 82220672, 84327040, 113108404, 38256, 83278464, 113100212, 0, 71724928, 47, -1, 49, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 2, in, w, out, b, pre, 83278464, 47504, 113100212, 47536, 84327072, 113092020, 85375648, 85375680, 48, -1, 50, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 5, in, w, out, b, pre, 84327072, 47504, 113092020, 47536, 85375712, 113083828, 0, 76968480, 49, 42, 51, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 3, in, w, out, b, pre, 85375712, 47504, 113083828, 47536, 86424288, 113075636, 113018292, 76968480, 50, -1, 52, 59},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 0, in, w, out, b, pre, 86424288, 47568, 113075636, 47536, 87472864, 113067444, 88521440, 85375680, 51, -1, 53, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 1, in, w, out, b, pre, 87472864, 89579232, 113067444, 47536, 88530656, 113059252, 0, 76968480, 52, -1, 54, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 2, in, w, out, b, pre, 88530656, 56784, 113059252, 56816, 89579264, 113051060, 90627840, 90627872, 53, -1, 55, -1},
{32, 32, inonce, outonce, 16, 16, 1, 0, 3, 32767, 3, in, w, out, b, pre, 89579264, 56784, 113051060, 56816, 90627904, 113042868, 0, 76968480, 54, -1, 56, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 0, in, w, out, b, pre, 90627904, 56848, 113042868, 56816, 91676480, 113034676, 92725056, 90627872, 55, -1, 57, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 1, in, w, out, b, pre, 91676480, 93782848, 113034676, 56816, 92734272, 113026484, 0, 76968480, 56, -1, 58, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 2, in, w, out, b, pre, 92734272, 66064, 113026484, 66096, 93782880, 113018292, 94831456, 94831488, 57, -1, 59, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 5, in, w, out, b, pre, 93782880, 66064, 113018292, 66096, 94831520, 113010100, 0, 86424288, 58, 51, 60, -1},
{32, 32, inonce, outonce, 16, 16, 1, 1, 3, 32767, 3, in, w, out, b, pre, 94831520, 66064, 113010100, 66096, 95880096, 113001908, 112969140, 86424288, 59, -1, 61, 68},
{32, 64, inonce, outonce, 16, 16, 2, 1, 3, 32767, 0, in, w, out, b, pre, 95880096, 66128, 113001908, 66096, 96928672, 112997812, 97452960, 94831488, 60, -1, 62, -1},
{64, 64, inonce, outonce, 8, 8, 2, 1, 3, 32767, 1, in, w, out, b, pre, 96928672, 97995680, 112997812, 66096, 97471392, 112993716, 0, 86424288, 61, -1, 63, -1},
{64, 64, inonce, outonce, 8, 8, 2, 1, 3, 32767, 2, in, w, out, b, pre, 97471392, 84560, 112993716, 84624, 97995744, 112989620, 98520032, 98520096, 62, -1, 64, -1},
{64, 64, inonce, outonce, 8, 8, 2, 0, 3, 32767, 3, in, w, out, b, pre, 97995744, 84560, 112989620, 84624, 98520160, 112985524, 0, 86424288, 63, -1, 65, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 0, in, w, out, b, pre, 98520160, 84688, 112985524, 84624, 99044448, 112981428, 99568736, 98520096, 64, -1, 66, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 1, in, w, out, b, pre, 99044448, 100129888, 112981428, 84624, 99605600, 112977332, 0, 86424288, 65, -1, 67, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 2, in, w, out, b, pre, 99605600, 121552, 112977332, 121616, 100129952, 112956852, 100654240, 100654304, 66, -1, 71, -1},
{32, 64, inonce, outonce, 16, 16, 2, 0, 1, 32767, 0, in, w, out, b, pre, 95880096, 121680, 112969140, 121616, 100654368, 112965044, 101178656, 100654304, 60, -1, 69, -1},
{64, 64, inonce, outonce, 8, 8, 2, 0, 1, 32767, 1, in, w, out, b, pre, 100654368, 101704992, 112965044, 121616, 101180704, 112960948, 0, 86424288, 68, -1, 70, -1},
{64, 64, inonce, outonce, 8, 8, 2, 0, 1, 32767, 2, in, w, out, b, pre, 101180704, 123728, 112960948, 123792, 101705056, 112956852, 102229344, 102229408, 69, -1, 71, -1},
{64, 64, inonce, outonce, 8, 8, 2, 0, 1, 32767, 5, in, w, out, b, pre, 101705056, 123728, 112956852, 123792, 102229472, 112952756, 0, 100129952, 70, 67, 72, -1},
{64, 64, inonce, outonce, 8, 8, 2, 1, 1, 32767, 3, in, w, out, b, pre, 102229472, 123728, 112952756, 123792, 102753760, 112948660, 112919988, 100129952, 71, -1, 73, 80},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 0, in, w, out, b, pre, 102753760, 123856, 112948660, 123792, 103278048, 112944564, 103802336, 102229408, 72, -1, 74, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 1, in, w, out, b, pre, 103278048, 104363488, 112944564, 123792, 103839200, 112940468, 0, 100129952, 73, -1, 75, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 2, in, w, out, b, pre, 103839200, 160720, 112940468, 160784, 104363552, 112936372, 104887840, 104887904, 74, -1, 76, -1},
{64, 64, inonce, outonce, 8, 8, 1, 0, 3, 32767, 3, in, w, out, b, pre, 104363552, 160720, 112936372, 160784, 104887968, 112932276, 0, 100129952, 75, -1, 77, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 0, in, w, out, b, pre, 104887968, 160848, 112932276, 160784, 105412256, 112928180, 105936544, 104887904, 76, -1, 78, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 1, in, w, out, b, pre, 105412256, 106497696, 112928180, 160784, 105973408, 112924084, 0, 100129952, 77, -1, 79, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 2, in, w, out, b, pre, 105973408, 197712, 112924084, 197776, 106497760, 112919988, 107022048, 107022112, 78, -1, 80, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 5, in, w, out, b, pre, 106497760, 197712, 112919988, 197776, 107022176, 112915892, 0, 102753760, 79, 72, 81, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 3, in, w, out, b, pre, 107022176, 197712, 112915892, 197776, 107546464, 112911796, 112883124, 102753760, 80, -1, 82, 89},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 0, in, w, out, b, pre, 107546464, 197840, 112911796, 197776, 108070752, 112907700, 108595040, 107022112, 81, -1, 83, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 1, in, w, out, b, pre, 108070752, 109156192, 112907700, 197776, 108631904, 112903604, 0, 102753760, 82, -1, 84, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 2, in, w, out, b, pre, 108631904, 234704, 112903604, 234768, 109156256, 112899508, 109680544, 109680608, 83, -1, 85, -1},
{64, 64, inonce, outonce, 8, 8, 1, 0, 3, 32767, 3, in, w, out, b, pre, 109156256, 234704, 112899508, 234768, 109680672, 112895412, 0, 102753760, 84, -1, 86, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 0, in, w, out, b, pre, 109680672, 234832, 112895412, 234768, 110204960, 112891316, 110729248, 109680608, 85, -1, 87, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 1, in, w, out, b, pre, 110204960, 111290400, 112891316, 234768, 110766112, 112887220, 0, 102753760, 86, -1, 88, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 2, in, w, out, b, pre, 110766112, 271696, 112887220, 271760, 111290464, 112883124, 111814752, 111814816, 87, -1, 89, -1},
{64, 64, inonce, outonce, 8, 8, 1, 1, 3, 32767, 5, in, w, out, b, pre, 111290464, 271696, 112883124, 271760, 111814880, 112879028, 0, 107546464, 88, 81, 90, -1},
{64, 64, inonce, outonce, 8, 8, 1, 0, 3, 32767, 3, in, w, out, b, pre, 111814880, 271696, 112879028, 271760, 112339168, 112874932, 0, 107546464, 89, -1, 91, -1},
{64, 64, inonce, outonce, 8, 8, 1, 0, 8, 0, 4, in, w, out, b, pre, 112339168, 271824, 112874932, 271760, 112863456, 112874868, 0, 107546464, 90, -1, 92, -1},
{64, 10, inonce, 10, 1, 1, 1, 1, 8, 0, 6, in, w, out, b, pre, 112863456, 280016, 112874868, 280656, 112871648, 112874858, 112872928, 112873568, 91, -1, 93, -1},
{10, 10, 10, 10, 1, 1, 1, 1, 8, 0, 7, in, w, out, b, pre, 112871648, 112873578, 112874858, 280656, 280666, 0, 0, 107546464, 92, -1, -1, -1}
};