Pagini recente » Cod sursa (job #422785) | Cod sursa (job #2269753) | Cod sursa (job #2408616) | Cod sursa (job #375480) | Cod sursa (job #2925799)
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int x[10];
int n;
int nrSol;
void afisare()
{
nrSol++;
for (int i = 1 ; i <= n ; i++)
for (int j = 1 ; j <= n ; j++)
if (x[i] == j)
g << j << " ";
g << endl;
}
int valid(int k)
{
for(int i = 1 ; i < k ; i++)
{
if(x[i] == x[k])
return false;
///conditia suplimentara la regine fata de ture
if (abs(x[k] - x[i]) == k - i)
return false;
}
return true;
}
void bt(int k)
{
for(int i = 1 ; i <= n ; i++)
{
x[k] = i;
if(valid(k) == true)
{
if(k == n)
{
if (nrSol == 0)
afisare();
else nrSol++;
}
else bt(k + 1);
}
}
}
int main()
{
f >> n;
bt(1);
g << nrSol;
return 0;
}