Files
RISC-V-Simulator/test/testcases/queens.c
2024-07-24 11:54:23 +00:00

43 lines
722 B
C

#include "io.inc"
int N = 8;
int row[8];
int col[8];
int d[2][16];
void printBoard() {
int i;
int j;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
if (col[i] == j)
printStr(" O");
else
printStr(" .");
}
printStr("\n");
}
printStr("\n");
}
void search(int c) {
if (c == N) {
printBoard();
} else {
int r;
for (r = 0; r < N; r++) {
if (row[r] == 0 && d[0][r + c] == 0 && d[1][r + N - 1 - c] == 0) {
row[r] = d[0][r + c] = d[1][r + N - 1 - c] = 1;
col[c] = r;
search(c + 1);
row[r] = d[0][r + c] = d[1][r + N - 1 - c] = 0;
}
}
}
}
int main() {
search(0);
return judgeResult % Mod; // 171
}