annotate MaFV @ 5302:9d3e2019ee31

<oerjan> slashlearn tdt/That doesn\'t tdt.
author HackBot
date Wed, 08 Apr 2015 05:00:38 +0000
parents dfde36387791
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5195
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
1 #include <stdio.h>
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
2
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
3 int c;
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
4
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
5 void s()
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
6 {
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
7 unsigned int m = 0xFFFF;
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
8 #define F(m,n,v,c,b) \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
9 for (int v = 0; v < 16; v++) { \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
10 if ((m & (1 << v)) && (c)) { \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
11 unsigned int n = m - (1 << v); \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
12 b \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
13 } \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
14 }
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
15 #define L(m,n,v,e,b) \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
16 { \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
17 int v = e; \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
18 if (v >= 0 && v < 16 && (m & (1 << v))) { \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
19 unsigned int n = m - (1 << v); \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
20 b; \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
21 } \
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
22 }
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
23 F(m,n, a1, 1,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
24 F(n,m, a4, a1<a4,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
25 F(m,n, d1, a1<d1 && a4<d1,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
26 F(n,m, a2, 1,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
27 L(m,n, a3, 30-a1-a2-a4,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
28 F(n,m, b1, 1,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
29 L(m,n, c1, 30-a1-b1-d1,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
30 F(n,m, b2, 1,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
31 F(m,n, d4, a1<d4,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
32 L(n,m, c3, 30-a1-b2-d4,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
33 F(m,n, b3, 1,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
34 L(n,m, b4, 30-b1-b2-b3,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
35 L(m,n, d3, 30-a3-b3-c3,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
36 L(n,m, d2, 30-d1-d3-d4,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
37 L(m,n, c4, 30-a4-b4-d4,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
38 L(n,m, c2, 30-d1-b3-a4,
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
39 c++;
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
40 // printf("%X%X%X%X\\%X%X%X%X\\%X%X%X%X\\%X%X%X%X\n",a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4,d1,d2,d3,d4);
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
41 ))))))))))))))))
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
42 }
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
43
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
44 int main()
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
45 {
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
46 s();
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
47 printf("%d\n", c);
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
48 }
dfde36387791 <elliott> fetch http://sprunge.us/MaFV
HackBot
parents:
diff changeset
49