int printf(char* format, ...); int putchar(int ch); int a[9]; int ok(int x, int y) { for (int i = 1; i <= x - 1; ++i) { if (a[i] == y || a[i] - i == y - x || a[i] + i == y + x) { return 0; } } return 1; } void queen(int x) { if (x > 8) { a[0]++; return; } for (int y = 1; y <= 8; ++y) { if (ok(x, y)) { a[x] = y; queen(x + 1); a[x] = 0; } } } int main() { queen(1); printf("%d\n", a[0]); }