#include<stdio.h>
#include<math.h>
int a[20];
bool Ok(int x2,int y2){
//kiểm tra cách đặt có thỏa mãn không
for(int i = 1; i < x2 ;i++)
if(a[i] == y2 || abs(i-x2) == abs(a[i] - y2) )
return false;
//Nếu kiểm tra hết các trường hợp vẫn không sai thì trả về true
return true;
}
void Xuat(int n){
//in ra một kết quả
for(int i=1;i<=n;i++)
printf(" %d",a[i]);
printf("\n");
}
void Try(int i,int n){
for(int j = 1;j<=n;j++){
// thử đặt quân hậu vào các cột từ 1 đến n
if(Ok(i,j)){
//nếu cách đặt này thỏa mãn thì lưu lại vị trí
a[i] = j;
//nếu đặt xong quân hậu thứ n thì xuất ra một kết quả
if(i==n) Xuat(n);
Try(i+1,n);
}
}
}
int main(){
int n = 8;// ở đây mình cho bài toán là 8 quân hậu trên bàn 8*8
Try(1,n);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8bWF0aC5oPgppbnQgYVsyMF07CmJvb2wgT2soaW50IHgyLGludCB5Mil7CiAgICAvL2tp4buDbSB0cmEgY8OhY2ggxJHhurd0IGPDsyB0aOG7j2EgbcOjbiBraMO0bmcKICAgIGZvcihpbnQgaSA9IDE7IGkgPCB4MiA7aSsrKQogICAgICAgIGlmKGFbaV0gPT0geTIgfHwgYWJzKGkteDIpID09IGFicyhhW2ldIC0geTIpICkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgLy9O4bq/dSBraeG7g20gdHJhIGjhur90IGPDoWMgdHLGsOG7nW5nIGjhu6NwIHbhuqtuIGtow7RuZyBzYWkgdGjDrCB0cuG6oyB24buBIHRydWUKICAgIHJldHVybiB0cnVlOwp9CiAKdm9pZCBYdWF0KGludCBuKXsKICAgIC8vaW4gcmEgbeG7mXQga+G6v3QgcXXhuqMKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgICAgIHByaW50ZigiICVkIixhW2ldKTsKICAgIHByaW50ZigiXG4iKTsKfQogCnZvaWQgVHJ5KGludCBpLGludCBuKXsKICAgIGZvcihpbnQgaiA9IDE7ajw9bjtqKyspewogICAgICAgIC8vIHRo4butIMSR4bq3dCBxdcOibiBo4bqtdSB2w6BvIGPDoWMgY+G7mXQgdOG7qyAxIMSR4bq/biBuCiAgICAgICAgaWYoT2soaSxqKSl7CiAgICAgICAgICAgIC8vbuG6v3UgY8OhY2ggxJHhurd0IG7DoHkgdGjhu49hIG3Do24gdGjDrCBsxrB1IGzhuqFpIHbhu4sgdHLDrQogICAgICAgICAgICBhW2ldID0gajsKICAgICAgICAgICAgICAgICAgICAgICAgLy9u4bq/dSDEkeG6t3QgeG9uZyBxdcOibiBo4bqtdSB0aOG7qSBuIHRow6wgeHXhuqV0IHJhIG3hu5l0IGvhur90IHF14bqjCiAgICAgICAgICAgIGlmKGk9PW4pIFh1YXQobik7CiAgICAgICAgICAgIFRyeShpKzEsbik7CiAgICAgICAgfQogICAgfQp9CiAKaW50IG1haW4oKXsKICAgIGludCBuID0gODsvLyDhu58gxJHDonkgbcOsbmggY2hvIGLDoGkgdG/DoW4gbMOgIDggcXXDom4gaOG6rXUgdHLDqm4gYsOgbiA4KjgKICAgIFRyeSgxLG4pOwogICAgcmV0dXJuIDA7Cn0=