#include <stdio.h>
#define N 4
int board[N]; // i-ci sətrdəki vezirin sütunu
int count = 0; // həllərin sayı
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;
}
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+CgojZGVmaW5lIE4gNAoKaW50IGJvYXJkW05dOyAvLyBpLWNpIHPJmXRyZMmZa2kgdmV6aXJpbiBzw7x0dW51CmludCBjb3VudCA9IDA7IC8vIGjJmWxsyZlyaW4gc2F5xLEKCmludCBzYWZlKGludCByb3csIGludCBjb2wpIHsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93OyBpKyspIHsKICAgICAgICBpZiAoYm9hcmRbaV0gPT0gY29sIHx8IChyb3cgLSBpKSA9PSAoY29sIC0gYm9hcmRbaV0pIHx8IChyb3cgLSBpKSA9PSAoYm9hcmRbaV0gLSBjb2wpKQogICAgICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIHJldHVybiAxOwp9Cgp2b2lkIHNvbHZlKGludCByb3cpIHsKICAgIGlmIChyb3cgPT0gTikgewogICAgICAgIGNvdW50Kys7IC8vIHllbmkgaMmZbGwgdGFwxLFsZMSxCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGZvciAoaW50IGNvbCA9IDA7IGNvbCA8IE47IGNvbCsrKSB7CiAgICAgICAgaWYgKHNhZmUocm93LCBjb2wpKSB7CiAgICAgICAgICAgIGJvYXJkW3Jvd10gPSBjb2w7CiAgICAgICAgICAgIHNvbHZlKHJvdyArIDEpOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBzb2x2ZSgwKTsKICAgIHByaW50ZigiNHg0IHRheHRhZGEgNCB2ZXppcmkgeWVybMmZxZ9kaXJtyZl5aW4geW9sbGFyxLE6ICVkXG4iLCBjb3VudCk7CiAgICByZXR1cm4gMDsKfQ==