mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-30 00:08:30 +00:00
Add SectorLambda
This commit is contained in:
parent
741c836e9d
commit
f5831a62fa
21 changed files with 3275 additions and 0 deletions
37
tool/lambda/tromp.c
Normal file
37
tool/lambda/tromp.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
// 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];}
|
Loading…
Add table
Add a link
Reference in a new issue