Pagini recente » Cod sursa (job #1035539) | Cod sursa (job #2187841) | Cod sursa (job #2224060) | Cod sursa (job #2563882) | Cod sursa (job #1213261)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fi("damesah.in");
ofstream fo("damesah.out");
int n,s[14];
int k=0,sol=0;
int abs(int x)
{
if (x<0)
x=-x;
return x;
}
bool corespunde(int p)
{
for (int i=1;i<p;++i)
if (s[i]==s[p] || (p-i)==abs(s[i]-s[p]))
return false;
return true;
}
void back(int p)
{
if (p>n)
{
if (!k)
{
k=1;
for (int i=1;i<=n;++i)
fo<<s[i]<<" ";
fo<<"\n";
}
++sol;
return;
}
for(int i=1;i<=n;++i)
{
s[p]=i;
if (corespunde(p))
back(p+1);
}
s[p]=0;
}
int main()
{
fi>>n;
back(1);
fo<<sol<<"\n";
fo.close();
}