Pagini recente » Cod sursa (job #1333953) | Cod sursa (job #2811702) | Cod sursa (job #247971) | Cod sursa (job #1007500) | Cod sursa (job #2052355)
#include <fstream>
using namespace std;
int n,p[14],sol;
bool c[14],dp[27],dm[27];
ifstream fin("damesah.in");
ofstream fout("damesah.out");
void back(int i)
{
for(int j=1;j<=n;++j)
if(!c[j]&&!dp[i+j]&&!dm[i-j+n])
{
p[i]=j;
c[j]=dp[i+j]=dm[i-j+n]=1;
if(i==n)
{
if(!sol++)
for(int k=1;k<=n;++k)
fout<<p[k]<<" ";
}
else
back(i+1);
c[j]=dp[i+j]=dm[i-j+n]=0;
}
}
int main()
{
fin>>n;
back(1);
fout<<"\n"<<sol<<"\n";
return 0;
}