mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 11:37:35 +00:00
38 lines
1.1 KiB
C
38 lines
1.1 KiB
C
|
// Public Domain
|
||
|
// Author: John Tromp
|
||
|
// Source: IOCCC 2012
|
||
|
#include "libc/runtime/runtime.h"
|
||
|
#include "tool/lambda/lib/blc.h"
|
||
|
|
||
|
#define A 500000
|
||
|
#define X 8
|
||
|
#define Int long
|
||
|
|
||
|
// clang-format off
|
||
|
|
||
|
Int L[A],m,b,*D=A,
|
||
|
*c,*a=L,C,*U=L,u;s
|
||
|
(_){u--&&s(a=*a);}
|
||
|
char*B,I,O;S(){b=b
|
||
|
--?b:m|read(0,&I,1
|
||
|
)-1;return~I>>b&1;
|
||
|
}k(l,u){for(;l<=u;
|
||
|
U-L<A?*U++=46^l++[
|
||
|
"-,&,,/.--/,:-,'/"
|
||
|
".-,-,,/.-,*,//..,"
|
||
|
]:exit(5));}p(Int*m){
|
||
|
return!*U?*m=S()?U++,!S
|
||
|
()?m[1]=p(++U),2:3:1,p(U)
|
||
|
:S()?U+=2:p(U[1]++),U-m;}x(
|
||
|
c){k(7*!b,9);*U++=b&&S();c&&x
|
||
|
(b);}d(Int*l){--l[1]||d(l[d(*l),
|
||
|
*l=B,B=l,2]);}main(e){for(k(10,33
|
||
|
),a[4]-=m=e-2&7,a[23]=p(U),b=0;;e-2
|
||
|
?e?e-3?s(D=a),C=a [3],++1[a=a[2]],d(
|
||
|
D):c?D=c,c=*D,*D= a,a=D:exit(L[C+1])
|
||
|
:C--<23?C=u+m&1?O =O+O|C&1,9:write(m
|
||
|
||(O=C+28),&O,1)+ 1:(S(),x(0<b++?k(0,
|
||
|
6),U[-5]=96:0)):( D=B?B:Calloc(4,X))
|
||
|
?B=*D,*D=c,c=D,D[ 2]=a,a[++D[1]]++,D
|
||
|
[3]=++C+u:exit(6) )e=L[C++],u=L[C];}
|