Pagini recente » Cod sursa (job #3004725) | Cod sursa (job #342616) | Cod sursa (job #35252) | Cod sursa (job #2701542) | Cod sursa (job #2091824)
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("damesah.in");
ofstream out("damesah.out");
int v[15],fr[15];
int n,i,nr,k,q;
int cond()
{
for(i=1;i<k;i++)
{
if(abs(v[k]-v[i])==abs(i-k))
return 0;
}
return 1;
}
void afis()
{
for(i=1;i<=n;i++)
out<<v[i]<<" ";
}
void bkt()
{
k=1;
v[k]=0;
while(k>0)
{
if(v[k]<n)
{
v[k]++;
if(fr[v[k]]==0)
{
if(cond())
{
fr[v[k]]=1;
q=v[k];
if(k==n)
{
if(nr==0)
{
afis();
}
nr++;
}
else
{
k++;
v[k]=0;
}
}
}
}
else
{
fr[q]=0;
k--;
fr[v[k]]=0;
}
}
}
int main()
{
in>>n;
bkt();
out<<"\n"<<nr;
return 0;
}