Pagini recente » Cod sursa (job #1497161) | Cod sursa (job #1794247) | Cod sursa (job #1435519) | Cod sursa (job #1174464) | Cod sursa (job #2431840)
#include<fstream>
#include<cmath>
using namespace std;
ifstream fin ("damesah.in");
ofstream fout ("damesah.out");
int a[15],n,nr,sol[14]={0,0,0,0,2,10,4,40,92,352,724,2680,14200,73712};
void afisare (int l)
{
for( int i=1;i<=l;i++)
fout<<a[i]<<" ";
}
bool verifica ( int l)
{
for( int j=1;j<l;j++)
{
int b= fabs(a[j]-a[l]);
if(b==l-j || a[j]==a[l])
return false;
}
return true;
}
void dame(int n,int k )
{
if(k==n+1 || nr)
return;
else
for( int i=1;i<=n;i++)
{
a[k]=i;
if(verifica(k))
{
if(k==n && !nr)
{
afisare(k);
nr=1;
}
dame(n,k+1);
}
}
}
int main()
{
fin>>n;
nr=0;
dame(n,1);
fout<<"\n";
fout<<sol[n];
}