Pagini recente » Cod sursa (job #3279364) | Cod sursa (job #2643379) | Cod sursa (job #1901570) | Cod sursa (job #2961585) | Cod sursa (job #1873802)
# include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
#define nmax 33
int a[nmax],niv[nmax],col[nmax],DS[nmax],DP[nmax];
int i,j,n,ok,cnt;
void afis()
{
for (i=1; i<=n; ++i)
g<<niv[i]<<" ";
g<<"\n";
}
void back (int k)
{
int i,dp,ds;
if (k==n+1)
{
if (!cnt)afis();
cnt++;
}
else
{
for (i=1; i<=n; ++i)
{
if (col[i]==0)
{
dp=(n-k)+i;
ds=(n-i)+(n-k+1);
if (DP[dp]==0 && DS[ds]==0)
{
DP[dp]=1;
DS[ds]=1;
col[i]=1;
niv[k]=i;
col[i]=1;
back(k+1);
DP[dp]=0;
DS[ds]=0;
col[i]=0;
niv[k]=0;
col[i]=0;
}
}
}
}
}
int main ()
{
f>>n;
back (1);
g<<cnt<<"\n";
return 0;
}