@*Intro. This program makes {\mc DLX} data to find all ways to attack or occupy all cells of an $n\times n$ board with $m$ queens. @d maxn 16 /* hexadecimal limitation */ @c #include #include int m,n; /* command-line parameters */ main(int argc,char*argv[]) { register int i,j,k; @; @; for (i=0;i; } @ @= if (argc!=3 || sscanf(argv[1],"%d", &n)!=1 || sscanf(argv[2],"%d", &m)!=1) { fprintf(stderr,"Usage: %s n m\n", argv[0]); exit(-1); } if (n>maxn) { fprintf(stderr,"Sorry, I don't presently allow n>%d!\n", maxn); exit(-2); } printf("| %s %d %d\n", argv[0],n,m); @ @= for (i=0;i= { printf("Q %x%x", i,j); for (k=0;k=0 && j-k>=0;k++) printf(" %x%x", i-k,j-k); for (k=1;i+k=0;k++) printf(" %x%x", i+k,j-k); for (k=1;i-k>=0 && j+k