Pagini recente » Cod sursa (job #1290689) | Cod sursa (job #935231) | Cod sursa (job #2045878) | Cod sursa (job #2536704) | Cod sursa (job #1711559)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("damesah.in");
ofstream out("damesah.out");
int a[100][100],n,c[100],l[100],d=0,sem=0,m,dgs[100],dgd[100];
void bk(int i,int j)
{
if(i>n && d==n)
{
if(sem==0)
{
for(int l=1;l<=n;++l){
for(int k=1;k<=n;++k)if(a[l][k]==1)out<<k<<" ";
}
out<<'\n';
sem=1;
}
m++;
return;
}
if(i>n)return;
if(j>n)
{
bk(i+1,1);
return;
}
if(c[j]==0 && l[i]==0 && dgs[2*n-j+i]==0 && dgd[i+j]==0)
{
c[j]=a[i][j]=1;
dgs[2*n-j+i]=1;
dgd[i+j]=1;
l[i]=1;
d++;
bk(i+1,1);
l[i]=0;
d--;
dgd[i+j]=0;
dgs[2*n-j+i]=0;
c[j]=a[i][j]=0;
}
bk(i,j+1);
}
int main()
{
in>>n;
bk(1,1);
out<<m;
return 0;
}