Pagini recente » Cod sursa (job #1390088) | Cod sursa (job #1551901) | Cod sursa (job #939816) | Cod sursa (job #1935356) | Cod sursa (job #1463021)
#include <iostream>
#include <fstream>
using namespace std;
fstream in("damesah.in", ios::in);
fstream out("damesah.out", ios::out);
int n,solutii,lin[15],col[15];
int valid(int);
int afis(int);
int succesor(int);
void back(int);
int main()
{
in>> n;
back(1);
out<< solutii;
in.close();
out.close();
return 0;
}
int succesor(int k)
{
if(col[k] >= n)
return 0;
else
{
col[k]++;
return 1;
}
}
int valid(int k)
{
int i,x;
if(k > n)
return 0;
for(i=1;i<k;i++)
{
x= (col[i]-col[k])/(i-k);
if((col[i] == col[k]) || ( abs(col[k]- col[i]) == abs(k-i)))
return 0;
}
return 1;
}
int afis(int k)
{
if(k > n)
{
if(solutii == 0)
{
for(int i=1;i<=n;i++)
out<< col[i]<< " ";
out<<"\n";
}
solutii++;
return 1;
}
else
return 0;
}
void back(int k)
{
if(afis(k))
{}
else
{
col[k]= 0;
while(succesor(k))
{
if(valid(k))
back(k+1);
}
col[k]= 0;
}
}