Pagini recente » Cod sursa (job #937012) | Cod sursa (job #2745112) | Cod sursa (job #2125161) | Cod sursa (job #1440930) | Cod sursa (job #1405521)
#include <fstream>
#include <algorithm>
#include <string.h>
#include<stdio.h>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int sol[14],ans,ok,n;
bool main_diag[28],sec_diag[28],col[14];
void verif(int k)
{
if(!ok)
{
for(int i=1;i<=k-1;i++)
fout<<sol[i]<<" ";
ok=1;
fout<<'\n';
}
ans++;
}
void back(int k)
{
if(k==n+1)
verif(k);
else
{
for(int i=1;i<=n;i++)
{
if(!col[i]&&!main_diag[i-k+n]&&!sec_diag[k+i-1])
{
sol[k]=i;
col[i]=main_diag[i-k+n]=sec_diag[k+i-1]=true;
back(k+1);
col[i]=main_diag[i-k+n]=sec_diag[k+i-1]=false;
}
}
}
}
int main()
{
fin>>n;
back(1);
fout<<ans;
return 0;
}