//By Joe Milner, [email](cut by me not to send him spam)@byu.edu[/email] #include <iostream> #include <fstream> #define A char // DEFINES START HENCEFORTH!!! #define B strlen #define C strstr #define D memcpy #define E if #define G case #define H break #define I switch #define J for #define K default #define L else #define M while #define N void #define O int #define P istream #define Q ifstream #define R exit #define S getline #define T open #define U tolower #define V cout #define W endl #define X main #define Y 500 using namespace std; N a(A* c) {J(O q=0;q<B (c);q++)c[q] =U(c[q]);}N b(A* c,O d,P& e){A f[50],g [50];O h=0,i =0,j=0;J(O q =0;q<B(c);q++ ){I( c[q] ){G '*': j=1; H;G '\' :q++ ;K:E (j)g [i++ ]=c[ q];L {f[h++]=c[q ];}}}f[h]= g[i]='\0';A k[Y] ;A l[Y];A* m;M( e&&!e.eof ()){ e.S(k, Y); D(l, k,Y) ;E(d ){a( k);a(f );a( g);} m=C( k,f) ;E(m ){E( C(++ m,g)) {V<< l<<W ;}}}}O X(O d, A** e){Q g;I(d){G 4:g .T(e [3]);E(!g )R(1 );b(e [2],1,g);H;G 2:b( e[1],0,cin);H;G 3:E(e[1][0]=='-')b(e[2],1,cin);L{g.T(e[2], ios::in);E(!g)R(1);b(e[1],0,g);}H;K:R(1);}}