Pagini recente » Cod sursa (job #2440334) | Cod sursa (job #1780747) | Cod sursa (job #34734) | Cod sursa (job #2799695) | Cod sursa (job #1759796)
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
short n,j,k,ok,st[15],top;
bool v[15],v1[15],v2[15],V1[15],V2[15];
int ct;
void Afisare()
{int i;
for(i=1;i<=n;i++)
fout<<st[i]<<" ";
}
void Back(int top)
{int i,ip;
if(top==n+1){if(ok==0){Afisare();ct++;ok=1;}
else ct++;
}
else for(i=1;i<=n;i++)
{ip=n-i+1;//fout<<"||"<<i<<"("<<ip-top<<")"<<"("<<i-top<<")"<<"|| ";
//if(i==2&&top==3)//fout<<"//"<<V1[i-top]<<" "<<v1[ip-top]<<"//";
if(i>=top){if(v[i]==0&&v1[i-top]==0)
{if(ip>=top&&V1[ip-top]==0)
{st[top]=i;//fout<<i<<"("<<ip-top<<")"<<"("<<i-top<<")"<<"* ";
v[i]=1;
v1[i-top]=1;
V1[ip-top]=1;
Back(top+1);
v[i]=0;
v1[i-top]=0;
V1[ip-top]=0;
//fout<<"\n";
}
else if(ip<top&&V2[top-ip]==0)
{st[top]=i;//fout<<i<<"("<<ip-top<<")"<<"("<<i-top<<")"<<" ";
v[i]=1;
v1[i-top]=1;
V2[top-ip]=1;
Back(top+1);
v[i]=0;
v1[i-top]=0;
V2[top-ip]=0;
// fout<<"\n";
}
}
}
else {if(v[i]==0&&v2[top-i]==0)
{if(ip>=top&&V1[ip-top]==0)
{st[top]=i;//fout<<i<<"("<<ip-top<<")"<<"("<<i-top<<")"<<"* ";
v[i]=1;
v2[top-i]=1;
V1[ip-top]=1;
Back(top+1);
v[i]=0;
v2[top-i]=0;
V1[ip-top]=0;
// fout<<"\n";
}
else if(ip<top&&V2[top-ip]==0)
{st[top]=i;//fout<<i<<"("<<ip-top<<")"<<"("<<i-top<<")"<<"* ";
v[i]=1;
v2[top-i]=1;
V2[top-ip]=1;
Back(top+1);
v[i]=0;
v2[top-i]=0;
V2[top-ip]=0;
// fout<<"\n";
}
}
}
}
}
int main()
{fin>>n;
Back(1);
fout<<"\n"<<ct;
}