Cod sursa(job #1143576)
Utilizator | Data | 15 martie 2014 18:22:52 | |
---|---|---|---|
Problema | Problema Damelor | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#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;
}