Pagini recente » Cod sursa (job #2176027) | Cod sursa (job #1958899) | Cod sursa (job #709169) | Cod sursa (job #2715129) | Cod sursa (job #1711557)
#include <iostream>
using namespace std;
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)cout<<k<<" ";
}
cout<<'\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()
{
cin>>n;
bk(1,1);
cout<<m;
return 0;
}