Pagini recente » Cod sursa (job #1412786) | Cod sursa (job #1642119) | Cod sursa (job #2405864) | Cod sursa (job #1642755) | Cod sursa (job #1416685)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int a[15],check[15],n;
int dp[30],ds[30],l[15],c[15],nr=0;
void back(int k)
{
int i,e;
if(k<=n) ///k-linia ///a[k]-coloana
for(i=1;i<=n;i++)
{if(check[i]==0)
{
a[k]=i;
if(k<i)
e=n+(i-k)+1;
else
e=k-i+1;
if( l[k]==0 && c[i]==0 && ds[k+i]==0 && dp[e]==0 )
{l[k]=1; c[i]=1; ds[k+i]=1; dp[e]=1;
a[k]=i; check[i]=1;
back(k+1); check[i]=0;
l[k]=0; c[i]=0; ds[k+i]=0; dp[e]=0;}
}}
else
{
if(nr==0)
{for(i=1;i<=n;i++)
g<<a[i]<<' ';
g<<'\n';}
nr++;}
}
int main()
{
int i;
f>>n;
for(i=1;i<=14;i++)
{check[i]=0;
a[i]=0;
l[i]=0;
c[i]=0;}
for(i=1;i<=29;i++)
{ds[i]=0;
dp[i]=0;}
back(1);
g<<nr;
f.close(); g.close();
}