Pagini recente » Cod sursa (job #632488) | Cod sursa (job #900973) | Cod sursa (job #1307544) | Cod sursa (job #1497665) | Cod sursa (job #1124008)
# include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int a[50],niv[50],col[50],DS[50],DP[50];
int i,j,n,ok,VV;
void back (int k)
{
int i,dp,ds;
if (k==n+1)
{
++VV;
if (ok==0)
{
for (i=1; i<=n; ++i)
g<<niv[i]<<" ";
g<<"\n"; ok=1;
}
}
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<<VV<<"\n";
return 0;
}