Pagini recente » Cod sursa (job #2919650) | Cod sursa (job #1370270) | Cod sursa (job #2731381) | Cod sursa (job #1319256) | Cod sursa (job #2136781)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
bool gasit=false;
int x[15],n,sol;
bool valid(int k)
{
for(int i=1;i<k;i++)
{
if(x[i]==x[k])
return false;
if(k-i== abs(x[k]-x[i]))
return false;
}
return true;
}
void afisare()
{
gasit=true;
for(int i=1;i<=n;i++)
g<<x[i]<<" ";
}
int backt(int k)
{
for(int i=1; i<=n; i++)
{
x[k]=i;
if(valid(k)!=0)
if(k==n)
{
sol++;
if(gasit==false)
afisare();
}
else
backt(k+1);
}
return sol;
}
int main()
{
f>>n;
g<<endl<<backt(1);
return 0;
}