/** J.K.Bonfield ** ^ < ^ > < # > v < < < > > < v X X j x X j X x ^ k ^ ^ ^ # X X X X ^ v v v v # v X v x > # < v > > X X l x X l 41 20 ######################################## # # # < < < < <> < < < # # > > > <> > > > > # # < < < < <> < < < # # > > > <> > > > > # # < < < < <> < < < # # > > > <> > > > > # # # # # # # # # # # # # # # # # # # # # # X # ########################################*/ #include #include #include #include #include int _tty_ch; bool _echoit; bool _rawmode; int _tty; #define U char #define G for( #define I )malloc(sizeof( typedef struct z {U x[20]; struct z*y; } j; j*J[2][256]; struct timeval v= {0,1<y) { U*f=t->x; if (d==f[17]|f[17]==c) { int i=k&2,u=9,k=1,w=x,_=y,T; G; --u||(d-f[8]&&(X[y][x]=f[8]),w---_--,i=0,u=8,k--);) { _+=P[T=i>u?u:i]-'o'; w+=P[4+T]-'p'; if(k) { if (d-f[i]&&f[i]-X[_][w]) break; i++; } else f[++i+8]-d && (X[_][w]=f[i+8]); } } } } } } jmp_buf E; int main(int open, U**exit) { FILE*C=fopen ( open-2?__FILE__:*++exit,P+8); j*t; volatile int Q,Y=0; int i,q; d=open-2?'\t':'*'; L: Q=0; G; setjmp(E)<256; Q-- ) longjmp(E,(J[Y][Q]=0,Q++)); G; ; ) { if(!C)return 1; if('\n'==(c=getc(C))) if(!Y++)goto L; else { fscanf(C,"%d %d\n",&i,&q); X=(U**I P++)*q*(i+1)); Q=0; G; Qy=J[Y][c]; J[Y][c]=t; fgets(t->x,20,C); } endwin(); }