Pagini recente » soldiers | Cod sursa (job #1550845) | Cod sursa (job #901431) | Cod sursa (job #714979) | Cod sursa (job #1481091)
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int a[13],n,i,k,sw,ev,nr=1;
ifstream f("damesah.in");
ofstream g("damesah.out");
void init()
{
a[k]=0;
}
void succesor()
{
ev=0;
if(a[k]<n)
{
a[k]++;
ev=1;
}
}
void valid()
{
sw=1;
for(i=1;i<k;i++)
{
if(a[i]==a[k] || abs(a[i]-a[k])==abs(i-k))
{
sw=0;
}
}
}
void tipar()
{
nr++;
for(i=1;i<=n;i++)
{
g<<a[i]<<" ";
}
g<<"\n";
}
void bkt()
{
k=1;
init();
while(k>0)
{
do
{
succesor();
if(ev==1)
{
valid();
}
}
while(ev==1 && sw==0);
if(ev==1)
{
if(k==n && nr<2)
{
tipar();
}
else
{
k++;
init();
}
}
else
{
k--;
}
}
}
int main()
{
f>>n;
bkt();
g<<nr;
return 0;
}