Pagini recente » Cod sursa (job #2359162) | Cod sursa (job #1072842) | Cod sursa (job #245386) | Cod sursa (job #1760082) | Cod sursa (job #1829346)
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n,x[15],j;
long long nr=0;
bool gasit;
void afisare(){
if(gasit==0)
{
gasit=1;
nr=1;
for(int i=1;i<=n;i++)
{
g<<x[i]<<" ";
}
g<<"\n";
}
else
{
nr++;
}
}
bool corect(int i)
{
int k;
for(j=1;j<i;j++)
{
if(x[i]==x[j])
{
return 0;
}
k=(x[j]-x[i]<0)?x[i]-x[j]:x[j]-x[i];
if(i-j==k)
{
return 0;
}
}
return 1;
}
void back(int i){
if(i<=n)
{
for(int j=1;j<=n;j++){
x[i]=j;
if(corect(i))//verific daca j este pe s1,s2,..s(i-1)
{
back(i+1);
}
}
}
else
afisare();
return ;
}
int main()
{
f>>n;
back(1);
g<<nr;
return 0;
}