Pagini recente » Cod sursa (job #1065791) | Cod sursa (job #2814464) | Cod sursa (job #515743) | Cod sursa (job #461149) | Cod sursa (job #2197731)
#include <bits/stdc++.h>
using namespace std;
ifstream in("damesah.in");
ofstream out("damesah.out");
bool tabla[60][60],u=1;
int v[16],ans,n;
bool valid(int k)
{
for(int i=1;i<k;i++)
if (tabla[i][v[k]]==1)return 0;
int i=k-1,j=v[k]-1,p=v[k]+1;
while(i)
{
if(!tabla[i][j] && !tabla[i][p])
{
i--;
j--;
p++;
}
else return 0;
}
return 1;
}
void bk(int k)
{
for(int i=1;i<=n;i++)
{
v[k]=i;
for(int j=1;j<=n;j++)tabla[k][j]=0;
if(valid(k) || k==1)
{
tabla[k][i]=1;
if(k==n)
{
if(u)
{
for(int j=1;j<=n;j++)
out<<v[j]<<' ';
out<<'\n';
u=0;
}
ans++;
}
else bk(k+1);
}
}
}
int main()
{
in>>n;
bk(1);
out<<ans;
return 0;
}