wryl 修订了这个 Gist . 转到此修订
2 files changed, 147 insertions
output.nv(文件已创建)
@@ -0,0 +1,13 @@ | |||
1 | + | |#| constant, @io-write-out, 33 | |
2 | + | |#| constant, @io-write-out, 10 | |
3 | + | ||
4 | + | |!| @io-write-out:33 | |
5 | + | |newline| @io-write-out:10 | |
6 | + | |write| @io-write | |
7 | + | ||
8 | + | ||start | |
9 | + | |start| | |
10 | + | write, !, | |
11 | + | then | |
12 | + | |then| | |
13 | + | write, newline |
output.nv.c(文件已创建)
@@ -0,0 +1,134 @@ | |||
1 | + | #include <stdio.h> | |
2 | + | int main(void) { | |
3 | + | unsigned long steps = 0; | |
4 | + | static unsigned long r_64io45write45out5833 = 0, r_64io45write45out = 0, | |
5 | + | r_64io45write45out5810 = 0, r_33 = 0, r_64once = 0, | |
6 | + | r_newline = 0, r_write = 0, r_64io45write = 0, | |
7 | + | r_start = 0, r_then = 0, r_64io45read = 0, | |
8 | + | r_64io45read45in = 0, r_64io45read45end = 0, matched = 0, | |
9 | + | min = 0; | |
10 | + | r_64once = 1u; | |
11 | + | r_start = 1u; | |
12 | + | do { | |
13 | + | if (0) { | |
14 | + | } else if (r_64io45read) { | |
15 | + | r_64io45read--; | |
16 | + | r_64io45read45in = getchar(); | |
17 | + | if ((int)r_64io45read45in == EOF) { | |
18 | + | r_64io45read45in = 0; | |
19 | + | r_64io45read45end++; | |
20 | + | } | |
21 | + | matched++; | |
22 | + | } else if (r_64io45write) { | |
23 | + | r_64io45write--; | |
24 | + | putchar(r_64io45write45out); | |
25 | + | r_64io45write45out = 0; | |
26 | + | matched++; | |
27 | + | } else if (r_64io45write45out5833) { | |
28 | + | min = r_64io45write45out5833; | |
29 | + | r_64io45write45out += 33u * min; | |
30 | + | r_64io45write45out5833 -= min; | |
31 | + | matched++; | |
32 | + | min = 0xFFFFFFFFFFFFFFFF; | |
33 | + | } else if (r_64io45write45out5810) { | |
34 | + | min = r_64io45write45out5810; | |
35 | + | r_64io45write45out += 10u * min; | |
36 | + | r_64io45write45out5810 -= min; | |
37 | + | matched++; | |
38 | + | min = 0xFFFFFFFFFFFFFFFF; | |
39 | + | } else if (r_33 && r_64once) { | |
40 | + | if (r_33 <= min) { | |
41 | + | min = r_33; | |
42 | + | } | |
43 | + | if (r_64once <= min) { | |
44 | + | min = r_64once; | |
45 | + | } | |
46 | + | if (min <= r_33) { | |
47 | + | r_33 -= min; | |
48 | + | } | |
49 | + | if (min <= r_64once) { | |
50 | + | r_64once -= min; | |
51 | + | } | |
52 | + | r_64io45write45out5833 += min; | |
53 | + | r_64once += min; | |
54 | + | matched++; | |
55 | + | min = 0xFFFFFFFFFFFFFFFF; | |
56 | + | } else if (r_newline && r_64once) { | |
57 | + | if (r_newline <= min) { | |
58 | + | min = r_newline; | |
59 | + | } | |
60 | + | if (r_64once <= min) { | |
61 | + | min = r_64once; | |
62 | + | } | |
63 | + | if (min <= r_newline) { | |
64 | + | r_newline -= min; | |
65 | + | } | |
66 | + | if (min <= r_64once) { | |
67 | + | r_64once -= min; | |
68 | + | } | |
69 | + | r_64io45write45out5810 += min; | |
70 | + | r_64once += min; | |
71 | + | matched++; | |
72 | + | min = 0xFFFFFFFFFFFFFFFF; | |
73 | + | } else if (r_write && r_64once) { | |
74 | + | if (r_write <= min) { | |
75 | + | min = r_write; | |
76 | + | } | |
77 | + | if (r_64once <= min) { | |
78 | + | min = r_64once; | |
79 | + | } | |
80 | + | if (min <= r_write) { | |
81 | + | r_write -= min; | |
82 | + | } | |
83 | + | if (min <= r_64once) { | |
84 | + | r_64once -= min; | |
85 | + | } | |
86 | + | r_64io45write += min; | |
87 | + | r_64once += min; | |
88 | + | matched++; | |
89 | + | min = 0xFFFFFFFFFFFFFFFF; | |
90 | + | } else if (r_start && r_64once) { | |
91 | + | if (r_start <= min) { | |
92 | + | min = r_start; | |
93 | + | } | |
94 | + | if (r_64once <= min) { | |
95 | + | min = r_64once; | |
96 | + | } | |
97 | + | if (min <= r_start) { | |
98 | + | r_start -= min; | |
99 | + | } | |
100 | + | if (min <= r_64once) { | |
101 | + | r_64once -= min; | |
102 | + | } | |
103 | + | r_write += min; | |
104 | + | r_33 += min; | |
105 | + | r_then += min; | |
106 | + | r_64once += min; | |
107 | + | matched++; | |
108 | + | min = 0xFFFFFFFFFFFFFFFF; | |
109 | + | } else if (r_then && r_64once) { | |
110 | + | if (r_then <= min) { | |
111 | + | min = r_then; | |
112 | + | } | |
113 | + | if (r_64once <= min) { | |
114 | + | min = r_64once; | |
115 | + | } | |
116 | + | if (min <= r_then) { | |
117 | + | r_then -= min; | |
118 | + | } | |
119 | + | if (min <= r_64once) { | |
120 | + | r_64once -= min; | |
121 | + | } | |
122 | + | r_write += min; | |
123 | + | r_newline += min; | |
124 | + | r_64once += min; | |
125 | + | matched++; | |
126 | + | min = 0xFFFFFFFFFFFFFFFF; | |
127 | + | } | |
128 | + | if (matched) { | |
129 | + | steps++; | |
130 | + | } | |
131 | + | } while (matched--); | |
132 | + | ||
133 | + | return 0; | |
134 | + | } |
上一页
下一页