Pagini recente » Cod sursa (job #903570) | Cod sursa (job #1662352) | Cod sursa (job #1069110) | Cod sursa (job #1603394) | Cod sursa (job #2174747)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n,st[100],nr,ok;
int valid(int p)
{
for(int i=1;i<p;i++)
if(st[i]==st[p] || abs(st[p]-st[i])==abs(p-i))
return 0;
return 1;
}
void afis(int p)
{
if(ok==0)
{
for(int i=1;i<=p;i++)
g<<st[i]<<' ';
g<<'\n';
ok=1;
}
}
int sol(int p)
{ return p==n; }
void backtr(int p)
{
for(int i=1;i<=n;i++)
{
st[p]=i;
if(valid(p))
if(sol(p)) {afis(p); nr++;}
else backtr(p+1);
}
}
int main()
{
f>>n;
backtr(1);
g<<nr;
}