rendered paste bodyint sols,width;
int colbad[100], diagbadleft[100], diagbadright[100];
void placequeen(int row, int *moves) {
if(row == width) {
if(sols<3) {
FILE *fout = fopen ("checker.out", "a");
int i;
for(i = 0; i < width; i++) {
if(i != width -1 ) fprintf(fout,"%d ", moves[i]+1);
else fprintf(fout,"%d\n",moves[i]+1);
}
fclose(fout);
}
sols++;
return;
}
int j;
for(j = 0; j < width; j++) {
if(!(colbad[j] || diagbadleft[row+j] || diagbadright[j-row+width])) {
colbad[j] = 1;
moves[row] = j;
diagbadleft[row+j] = 1;
diagbadright[j-row+width] = 1;
placequeen(row+1,moves);
moves[row] = 0;
diagbadleft[row+j] = 0;
diagbadright[j-row+width] = 0;
colbad[j] = 0;
}
}
}
int main() {
FILE *fin = fopen ("checker.in", "r");
fscanf (fin, "%d\n", &width);
int moves[width];
placequeen(0, moves);
FILE *fout = fopen ("checker.out", "a");
fprintf (fout, "%d\n", sols);
return 0;
}