Pagini recente » Cod sursa (job #657436) | Cod sursa (job #2741049) | Cod sursa (job #2841710) | Cod sursa (job #2225231) | Cod sursa (job #1123634)
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n,i,bsol[20],used[20],diag1[20],diag2[20],sol;
long long cnt;
void bkt(int k)
{
if(k==n+1)
{
++cnt;
if(sol==0)
{
for(int i=1;i<=n;++i)
{
g<<bsol[i]<<" ";
}
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;
}