#include <iostream>
using namespace std;
int a[9];
bool canPlace(int k){
for(int i=1;i<k;i++){
if(a[i]==a[k]||abs(k-i)==abs(a[k]-a[i]))
return false;
}
return true;
}
void queen(int i){
if(i>8){
for(int j=1;j<9;j++)
cout<<a[j]<<" ";
cout<<endl;
}
for(int j=1;j<9;j++){
a[i]=j;
if(canPlace(i)){
queen(i+1);
}
}
}
int main(){
queen(1);
system("pause");
}
using namespace std;
int a[9];
bool canPlace(int k){
for(int i=1;i<k;i++){
if(a[i]==a[k]||abs(k-i)==abs(a[k]-a[i]))
return false;
}
return true;
}
void queen(int i){
if(i>8){
for(int j=1;j<9;j++)
cout<<a[j]<<" ";
cout<<endl;
}
for(int j=1;j<9;j++){
a[i]=j;
if(canPlace(i)){
queen(i+1);
}
}
}
int main(){
queen(1);
system("pause");
}