Pagini recente » Cod sursa (job #397287) | Cod sursa (job #131378) | Cod sursa (job #190993) | Cod sursa (job #1940389) | Cod sursa (job #3203620)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("damesah.in");
ofstream out ("damesah.out");
const int NMAX=15;
int n;
int v[NMAX];
bool gasit=false;
int cnt;
void afis()
{
for(int i=1; i<=n; i++)
out<<v[i]<<" ";
out<<'\n';
gasit=true;
}
inline bool ok(int poz)
{
for(int i=1; i<poz; i++)
{
if(v[poz]==v[i] || abs(v[i]-v[poz])==abs(i-poz))
return false;
}
return true;
}
void bkt(int poz)
{
for(int i=1; i<=n; i++)
{
v[poz]=i;
if(ok(poz))
{
if(poz==n)
{
if(!gasit)
afis();
cnt++;
}
else
bkt(poz+1);
}
}
}
int main()
{
in>>n;
bkt(1);
out<<cnt;
return 0;
}