Pagini recente » Cod sursa (job #171118) | Cod sursa (job #2034394) | Cod sursa (job #1256852) | Cod sursa (job #1961624) | Cod sursa (job #1390745)
#include<cstdio>
const int N=13;
int st[N+1];
bool col[N+1];
bool diag[2][2*N];
int n,nres;
bool f=true;
void print(){
for(int i=1;i<=n;i++)
printf("%d ",st[i]);
printf("\n");
}
int k;
void bkt(){
if(k==n+1){
if(f)
print();
f=false;
nres++;
return;
}
for(int i=1;i<=n;i++)
if(!col[i]&&!diag[0][k+i-1]&&!diag[1][k+n-i]){
st[k]=i;
col[i]=true;
diag[0][k+i-1]=true;
diag[1][k+n-i]=true;
k++;
bkt();
k--;
col[i]=false;
diag[0][k+i-1]=false;
diag[1][k+n-i]=false;
}
}
int main(){
freopen("damesah.in","r",stdin);
freopen("damesah.out","w",stdout);
scanf("%d",&n);
k=1;
bkt();
printf("%d",nres);
return 0;
}