#include #include # include #define J(J) for (\ _ j=0; j<5; ++j) J; #define/*IOCCC*/I \ \ \ \ _ W,_ O,_ R,_ D,_*L,_*E #define A(A )for(_ j=0; !o&&j<5&&(k = t[l][j]); ++j)A&&++o; typedef/* ; ; */void q; typedef int _ ; typedef char/* */p; struct{ p a [257],b[9][ 5],c[5],d[5 ]; _ e,f; } i;p t[78557 ][5]; _ s,a []={ 9,9,9, 10,13,18,27 ,39,55,1,18 ,2,1,1,35,2 ,19,18,1,52 ,36,35,20,3 ,2,19,18,18 ,69,2,53,1, 52,37,3,20, 36,19,35,18 ,52,86,2,53 ,70,1,69,38 ,4,21,3,37, 19,36,35,25 ,10,+17,15, 26,9,11,12, 23,2,06,18, 13,20,22,14 ,1,24,19,21 ,16,5,7,4,8 ,3},u=' ';_ W(p*a,p*b){ for(p*c=a+5 ;a>=4] = E[w+D*O]?E[ o+++D*W]:E[ w +++ D*O]; return e(O, w,e(W,o,R,D ,L,E),D,L,E ); } q l( _ n,_*f){ for (_* e=f+26, i,j; fu; f+= i) { for(i=1,j =*f/u; i >5== j; )++i;for (j=0; j 2)J( k+=++c[b[j] -97]>1); if (!k) return b; } return d; } p*r(p* b){ _ k, l; for(_ j=k=l =0; j<5; ++ j) { signed char n=b[j] ,o=b[j-~5]+ ~0x66; (o?i .b[i.e]:i.c )[j]=n; !o? i.a[n]=!++k :O(i.d,n)|| (*(o<0?&i.a [n]:&i.d[i. f++])=l=n); } i.e += !! l; L(b, k); return E("" "xyzzy"); } _ main(_ n, char**v){ p *j=i .c-97, *l=j-11; n- 2?R("usage" ": %s dict" "\n",* v):5 ; ; FILE*k= fopen(*++v, "r"); if(!k ) return // perror(*v), 1; ; while( fgets(j, u^ n,k)) D(j); fclose (k); ; ; setbuf( stdout, 0); while(~-s){ printf("? " ); while(~( n=getchar() )&&n-10&&l< j)*l++=n; l