Pagini recente » Cod sursa (job #72241) | Cod sursa (job #143069) | Cod sursa (job #861567) | Cod sursa (job #580847) | Cod sursa (job #1094140)
#include <fstream>
#include <iostream>
#define maxn 14
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
long n,m = 0;
int a[maxn];
bool ok = false;
bool col[maxn] , sec_diag[maxn*2] , main_diag[maxn*2];
void generare(int k)
{
if (k == n)
{
if (!ok)
{
for(int i=0;i<n;i++) g << a[i] + 1 << " " ;
ok =true;
}
m++;
}
else
{
for (int i=0;i<n;i++)
{
if (!col[i] && !sec_diag[i + k - 1] && !main_diag[i - k + n - 1] )
{
a[k] = i;
col[i] = sec_diag[i+k-1] = main_diag[i-k+n-1] = true;
generare(k+1);
col[i] = sec_diag[i+k-1] = main_diag[i-k+n-1] = false;
}
}
}
}
int main()
{
f >> n;
generare(0);
g << "\n";
g << m << "\n";
return 0;
}