Cod sursa(job #2091824)
| Utilizator | Data | 20 decembrie 2017 12:06:30 | |
|---|---|---|---|
| Problema | Problema Damelor | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 1.19 kb |
#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;
}
