#include<bits/stdc++.h>
using namespace std;
bool shu[11],xie1[21],xie2[21];
char mode[11][11],n;
void pr(){
for(int i=1;i<=n;i++){
cout<<mode[i]<<endl;
}
}
void init(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
mode[i][j]='.';
}
}
}
void dfs(int step){
if(step>n){
pr();
return;
}
bool flag=true;
for(int i=1;i<=n;i++){
if(!shu[step] && !xie1[i+step] && !xie2[step-i+n]){
mode[step][i]='Q';
shu[step]=xie1[i+step]=xie2[step-i+n]=true;
flag=false;
dfs(step+1);
mode[step][i]='.';
shu[step]=xie1[i+step]=xie2[step-i+n]=false;
}
}
if(flag){
return;
}
}
int main(){
cin>>n;
cout<<n;
dfs(1);
return 0;
}
错了
题目