-
-
Notifications
You must be signed in to change notification settings - Fork 83
Expand file tree
/
Copy pathrcm.c
More file actions
119 lines (109 loc) · 3 KB
/
rcm.c
File metadata and controls
119 lines (109 loc) · 3 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
107
108
109
110
111
112
113
114
115
116
117
118
119
#include T
#include Y
H W[] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }
,u[] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51,
59, 67, 83, 99, 115, 131, 163, 195, 227, 258 } ,P[] = { A A 1, 1, 1, 1, 2,
2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0 } ,Q[] = { 1, 2, 3, 4, 5, 7, 9,
13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049,
3073, 4097, 6145, 8193, 12289, 16385, 24577 } ,L[] = { A 1, 1, 2, 2, 3, 3,
4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 }, y, C, t,
Z[320], b[17], G[17]; H long j; H char S[K]; n { n *o, *O; H l; } F, *V, *h,
*I, **e;
H U H l, H O)
{
H w = 0, o, f, q; J !O) { ; {
U 24, 1); o = U 8, 1); U 24, 1); U 24, 1); {
J o & 4) { ; X q = U 16, 1); q--; U 8, 1)); } ; {
X; o & 8 && U 8, 1); ) { ; ;
}
}
X; o & 16 && U 8, 1); );
o & 2 && U 16, 1);
}
X o = 0; !o; ) { ;
{
o = U 1, 1); q = U 2, 1); J
q || U 8, 7)) { ; { ; { ; } ; ; ;
q & 1 && U 7, 8);
q & 2 && U 3, 9); U 5, 6);
I = V; U 2, 4); I = h; U 9, 4); } ; }
} ; ; { ; } ; { ; } ; { ; } ; { ; }
}
X; (C M) != (t M); N (C++[S])); } ; }
s 6)
{
; { ; { ; } X; (O = U 6, (I = V, 3) )) != 256; )
J O > 256 || (U O, 2), 0)) { ; {
O -= 257; l = u[O] + U P[O], 1);
I = h; O = U 5, 3); O = Q[O] + U L[O], 1);
O = O <= t ?
t - O : K - O + t; X; l--; O M) U S[O++], 2) ; } ; }
}
;} s 3) {
; { X; I->o; I = U 1, 1) ? I->O : I->o); w = I->l; } ;
} s 5) { ; { X O = 17; O--; O[b] =
0); X O++; O < l;
O++[Z][b]++);
X *b = *G = O = 0 ; O < 16; O++) { ; {
G[O+1] = (O[G] + b[O]) << 1; ; }
}
X I = 0, O = 0; O < l; O++) J Z[O]) { ;
{
X e = (q = O[Z][G], Z[O][G]++,
o = Z[O], &I); o-- && (*e || ((*(*e = R) = F), 1));
e = ((q >> o) & 1) ? &(*e)->O : &(*e)->o);
*(*e = R)
= F; (*e)->l = O; } ; } } ; } s 2) { ; {
t++[S] = l; (t M) == (C M)
&& N (C++[S]); } ; } s 8) { ; {
X O = 288; O--; Z[O] = O < 144 ? 8
: O < 256 ? 9 : O < 280 ? 7 : 8); V = (U 288, 5),
I); { ; { X O = 32; O--;
Z[O] = 5);
}
}
h = (U 32, 5), I); } ; } s 1 && l)
{
; { { ; } ; { ; } ; { ; } ; { ; }
X; y < l; y += 8)
j |= 0l + D << y; w = j
& (1 << l) - 1;
j >>= l; y -= l; } ; } s 7) { ; { y % 8 && U y % 8, 1);
X O = U 16, 1), U 16, 1); O--; U U 8, 1), 2));
} ;
}
s 9) { ; {
H p = U 5, 1) + 257, z = U 5, 1) + 1, v = U 4,
1) + 4; { X O = 0; O < v; O++[W][Z] = U 3, 1));
X; 19 > O; W[O++][Z] = 0); { ;
}
}
V = (U 19, 5), I);
{
X l = O = 0; O < (p + z); ) {
I = V; o = U 3, 3); f = o == 16
? (o = l), 3 + U 2, 1) : o == 17 ?
(o = 0), 3 + U 3, 1) : o == 18 ? (o = 0),
11 + U 7, 1) : ((l = o), 1); X q = f; q--;
O++[Z] = o); ; ; ; ; ; { ; }
}
I = V;
{
U 9, 4); }
V = (U p, 5), I);
X O = z; O--;
Z[O] = Z[O+p]);
h = (U z, 5),
I); } ; ; ; } ; ; ; } s
4) { ; ; ; { n *
i = I; i && (
I = i->o, U 7, 4),
I = i->O,
free (i), U 1, 4));
} ; }
return w;
}
main ()
{
return B (3, 0);
}