Pagini recente » Cod sursa (job #2185634) | Cod sursa (job #400352) | Cod sursa (job #2364877) | Cod sursa (job #2958281) | Cod sursa (job #1155291)
#include<fstream>
using namespace std;
ifstream in("damesah.in");
ofstream out("damesah.out");
int v[15],n,nr=0,col[32]={0},diag1[32]={0},diag2[32]={0};
void back(int k)
{
if(k==n+1)
{
nr++;
if(nr==1)
{
for(int i=1;i<=n;i++)
out<<v[i]<<' ';
out<<'\n';
}
}
else
for(int i=1;i<=n;i++)
{
v[k]=i;
if(col[i]==0 && diag1[n+i-k]==0 && diag2[2*n-i-k+1]==0)
{
col[i]=1;
diag1[n+i-k]=1;
diag2[2*n-i-k+1]=1;
back(k+1);
col[i]=0;
diag1[n+i-k]=0;
diag2[2*n-i-k+1]=0;
}
}
}
int main ()
{
in>>n;
back(1);
out<<nr<<'\n';
return 0;
}