Pagini recente » Cod sursa (job #1108782) | Cod sursa (job #90580) | Borderou de evaluare (job #1678312) | Cod sursa (job #3208119) | Cod sursa (job #1957236)
#include<fstream>
#include<cmath>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int st[101],k,n,y;
void init()
{
st[k]=0;
}
int succesor()
{
if(st[k]<n)
{
st[k]++;
return 1;
}
return 0;
}
int valid()
{
int i;
for(i=1;i<=k-1;i++)
{
if(st[i]==st[k]||abs(k-i)==abs(st[i]-st[k]))
{
return 0;
}
}
return 1;
}
int sol()
{
return(k==n);
}
void tipar()
{
int i,j;
for(i=1;i<=n;i++)
{
fout<<st[i]<<" ";
}
fout<<"\n";
}
void backk()
{
int as,c , ev ;
k=1;
init();
c=0;
while(k>=1)
{
do
{
as=succesor();
ev=valid();
}
while(as==1&&ev==0);
{
if (as==0)
{
k--;
}
else
{
if(sol())
{
c++;
if(c==1)
{
tipar();
}
}
else
{
k++;
init();
}
}
}
}
fout<<c;
}
int main ()
{
fin>>n;
backk();
fin.close();
fout.close();
return 0;
}