Pagini recente » Cod sursa (job #899287) | Cod sursa (job #2243775) | Cod sursa (job #433) | Cod sursa (job #2608125) | Cod sursa (job #3164811)
#include <fstream>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
ifstream cin("damesah.in");
ofstream cout("damesah.out");
int v[15],nr,n,poz[10005];
long long S;
bool diag(int p)
{
for(int i=1; i<p; i++)
if(p-i==abs(poz[p]-poz[i]))
return 0;
return 1;
}
void backtracking(int k)
{
if(k==n+1)
{
nr++;
if(nr==1)
{
for(int i=1;i<=n;i++)
cout<<poz[i]<<" ";
cout<<"\n";
}
}
else
{
for(int i=1;i<=n;i++)
if(v[i]==0)
{
v[i]=1;
poz[k]=i;
if(diag(k)==1)
backtracking(k+1);
v[i]=0;
}
}
}
int main()
{
cin>>n;
backtracking(1);
cout<<nr;
return 0;
}