Pagini recente » Cod sursa (job #1110773) | Cod sursa (job #2870111) | Cod sursa (job #1751459) | Cod sursa (job #224456) | Cod sursa (job #1408820)
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int a[14],n,i,j,k,nr,ok=0;
void afis()
{
for(int i=1;i<=n;i++)
g<<a[i]<<" ";
g<<"\n";
}
int valid(int k)
{
int i;
for(i=1;i<k;i++)
if(a[i]==a[k]||fabs(a[i]-a[k])==fabs(k-i))
return 0;
return 1;
}
void dame(int k)
{
if(k==n+1)
{
if(ok==0)
afis(),ok=1;
nr++;
}
else
for(i=1;i<=n;i++)
if(valid(i)==1)
{
a[k]=i;
dame(k+1);
}
}
int main()
{
f>>n;
do
{
do
{
a[i]++;
if(a[i]>n)
{
a[i]=0;
i--;
}
else
if(valid(i))
i++;
}while(i<=n&&i>0);
if(i>n)
{
if(ok==0)
{
for(j=1;j<=n;j++)
g<<a[j]<<" ";
ok=1;
}
i=n;nr++;
}
}while(i>0);
g<<"\n"<<nr;
return 0;
}