In other words now the version that can compile with clang is the giljade.c and the other is giljade.alt.c. The reason is that the actual award is about a 2D puzzle and this still works with the clang compilable version. It also lets those who are forced to use clang compile the code and at least enjoy the puzzle. The Makefile has been updated to remove the note about clang or rather reworded so that the user is made aware that the alt version will run the self-test but the original will not and to see the README.md for more details.
50 lines
2.4 KiB
C
50 lines
2.4 KiB
C
#define/**/F/***/for/*A*/
|
|
#define/***/H()f=*E<<4|*\
|
|
E,f=~(f|f<<1|E[3]|E[1]|E\
|
|
[1]<<4|E[2]|E[(2)]<<(1));
|
|
#define/***/I(x,d)F(;s;C\
|
|
()){s=s^(b=s&s-1^s);F(N[\
|
|
4]=q=0;q<4;q++)N[q]=E[q]\
|
|
;N[5]=E-B;N[d]^=+b^(b)x;}
|
|
#define/**/o(p,t,i,m,a,l\
|
|
\
|
|
)u=(f&p)i(m) ;s=u&E[3];I(t(m),3)s=(u)a &E[l];I(t(m\
|
|
),l)u=u>>5-m &u;s=u&E[3-l];I(t(m),3-l) s=(u)a&*E;I\
|
|
(t(m),(0));; /*echo/Line/%d;sed/-n/-e/ %d,%dp/%s>*/
|
|
/*c.c;cc/c.c /-c*/;;char*A=0,*_,*R,*Q, D[9999],*r,l
|
|
[9999],T=42, M,V=32;int *E,k[9999],B[1 <<+21],*N=B+
|
|
1234567,q=0, h=3,j=2,O,b,f,u,s,c,a,t,e ,d;C(){F(h=N
|
|
[3];(B[h]&&+ memcmp(N,B+B[h],16));h=B[ h]+4);B[h]||
|
|
(B[h]=N-B,N= N+6);}main(char*U,int*w[] ){;;F(_=A=D+
|
|
6666,A[fread (A,1,3333,fopen(__FILE__, "r"))]=0;*++
|
|
_;h||(*_=V))
|
|
*_-59|_[1]-* _||(h&&(*_=+ 35),h---2||(_[9]=V));;F(_
|
|
=A;*_;_++)10 -*_&&*_-V&&( *_-92)&&(k[q]=isalnum(l[q
|
|
]=*_),q++);M =47;*(E=N-6) =64;E[1]=289;E[2]=270336;
|
|
F(E[3]=32782 ;E<N;E=E+6){ H()o(1048560,<<,>>,4,>>4,
|
|
1)o(+489335, >>,<<,1,,2)o (978670,<<,>>,1,>>1,2)o(+
|
|
65535,>>,<<, 4,,1)if(8192 &*E){F(N=B;E>B;E=B+E[5])*
|
|
N++=E-B;F(;N >B;){h=*(E=B +*--N);H()s=~(E[1]|h|h<<1
|
|
);u=~(E[2]|h |h<<4);r=l;_ =D;d=1;a=2;O=8;F(q=74;q;q
|
|
--){F(b=0;b< 72;b++){h=+1 <<(q-1)/14*4+(b-1)/18;j=b
|
|
?(!(b%18)&&u &h)|h&f|(!(q%14)&&s&h)?1:
|
|
0:2;if(O<3)O ?j?j-1&&(O-2 &&d--,*R=34,O=2):(*_++=O-
|
|
2?l[d]?l[d++ ]:(d=t,O=e=3 ,34):(O=1,34)):j||(*_++=d
|
|
<t?l[d++]:(O =1,d=0,34)); else{if(O<6)if(j){j-2|e||
|
|
(_=R,O-4?d-- :M-_[-1]||(_ [-1]=l[d++],O=3));c=0;if(
|
|
k[d]&k[d-1]) F(;k[d-1];++ c)d--;!d||((h=l[d])^l[d-1
|
|
])+k[d]||!(+ 40-(h&62)&&h -125)||(c=1,d--);c-1||(c=
|
|
2,d--);c&&(_ [-c]=M,_[1-c ]=T,O=4);j-2|e||(*_++=+92
|
|
);}else{h=*_ ++=O-4?O-5?l [d++]:(O=3,M):(O=5,T),(_[
|
|
-1]&&(35-h|| !(a=+1)))||( O=7,*(R=Q=_-(1))=M);}else
|
|
{j?O-7||(O=6
|
|
,_[-1]=59):( *_++=a-2?O-6 ?O-7?126&*++ r:(O=8,T):(O
|
|
=7,M):(a=0,l [d]-100?(e=1 ,O=0):(e=0,O =3,35)));if(
|
|
e==1){F(r=A= l+d;35-*A;++ A)*A-M&&*A-T ||U-1&&(*A=V
|
|
);d=d+A-r;if (U-1){*A=0;F (j=2;13499>j &&(sprintf(l
|
|
,r+1,j,j,O=j +75,w[1]),j= O,!system(l) ););exit(j<+
|
|
13499);}t=d+ 9;_[-1]=l[++ d];}a-1|+j-2 ||(R-Q<3?(*(
|
|
Q<R?R-1:R)=* Q=*R=59):(*R =M,R[-1]=T), a=2);}}j?(*_
|
|
++=j-2?V:10, R):(R=_-1);} }R[-1]=T;*R= M;*_++=10;F(
|
|
R=D;putchar( *R)&&_>++R;) ;}}};O-b-f-u -s-c-a-t-e;}
|