#include <stdio.h>
#define N 4
int board[N]; // i-ci sətrdəki vezirin sütunu
int count = 0;
// Təhlükəsizliyi yoxlayır
int safe(int row, int col) {
for (int i = 0; i < row; i++) {
if (board[i] == col || (row - i) == (col - board[i]) || (row - i) == (board[i] - col))
return 0;
}
return 1;
}
// Rekursiv yerləşdirmə
void solve(int row) {
if (row == N) {
count++; // yeni həll tapıldı
return;
}
for (int col = 0; col < N; col++) {
if (safe(row, col)) {
board[row] = col;
solve(row + 1);
}
}
}
int main() {
solve(0);
printf("4x4 taxtada 4 veziri yerləşdirməyin yolları: %d\n", count
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE4gNAppbnQgYm9hcmRbTl07IC8vIGktY2kgc8mZdHJkyZlraSB2ZXppcmluIHPDvHR1bnUKaW50IGNvdW50ID0gMDsKCi8vIFTJmWhsw7xryZlzaXpsaXlpIHlveGxhecSxcgppbnQgc2FmZShpbnQgcm93LCBpbnQgY29sKSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvdzsgaSsrKSB7CiAgICAgICAgaWYgKGJvYXJkW2ldID09IGNvbCB8fCAocm93IC0gaSkgPT0gKGNvbCAtIGJvYXJkW2ldKSB8fCAocm93IC0gaSkgPT0gKGJvYXJkW2ldIC0gY29sKSkKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICByZXR1cm4gMTsKfQoKLy8gUmVrdXJzaXYgeWVybMmZxZ9kaXJtyZkKdm9pZCBzb2x2ZShpbnQgcm93KSB7CiAgICBpZiAocm93ID09IE4pIHsKICAgICAgICBjb3VudCsrOyAvLyB5ZW5pIGjJmWxsIHRhcMSxbGTEsQogICAgICAgIHJldHVybjsKICAgIH0KICAgIGZvciAoaW50IGNvbCA9IDA7IGNvbCA8IE47IGNvbCsrKSB7CiAgICAgICAgaWYgKHNhZmUocm93LCBjb2wpKSB7CiAgICAgICAgICAgIGJvYXJkW3Jvd10gPSBjb2w7CiAgICAgICAgICAgIHNvbHZlKHJvdyArIDEpOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBzb2x2ZSgwKTsKICAgIHByaW50ZigiNHg0IHRheHRhZGEgNCB2ZXppcmkgeWVybMmZxZ9kaXJtyZl5aW4geW9sbGFyxLE6ICVkXG4iLCBjb3VudCk7CiAgICByZXR1cm4gMDsKfQ==