Pagini recente » Cod sursa (job #1784664) | Cod sursa (job #826317) | Cod sursa (job #3150525) | Cod sursa (job #2224181) | Cod sursa (job #1123650)
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n,i,bsol[60],used[60],diag1[60],diag2[60],sol;
long long cnt;
void bkt(int k)
{
if(k>=n+1)
{
++cnt;
if(sol==0)
{
for(int j=1;j<=n;j++)
{
g<<bsol[j]<<" ";
}
sol=1;
}
}
else
{
for(int i=1;i<=n;++i)
{
int d1=n+k-i+1;
int d2=k+i-1;
if(!used[i]&&!diag1[d1]&&!diag2[d2])
{
used[i]=1;
diag1[d1]=1;
diag2[d2]=1;
bsol[k]=i;
bkt(k+1);
used[i]=0;
diag1[d1]=0;
diag2[d2]=0;
}
}
}
}
int main()
{
f>>n;
bkt(1);
g<<"\n"<<cnt;
return 0;
}