Pagini recente » Cod sursa (job #2143154) | Cod sursa (job #1632355) | Cod sursa (job #418238) | Cod sursa (job #2124887) | Cod sursa (job #1547755)
#include <iostream>
#include <cstdio>
using namespace std;
int n,c[14],dia1[30],dia2[30],rasp,rez[15];
void backt (int l)
{
if (l==n+1)
{
if (rasp < 1)
{
for (int i=1; i<=n; ++i)
printf("%d ",rez[i]);
printf("\n");
}
++rasp;
return;
}
for (int i=1; i<=n; ++i)
if (!c[i] && !dia1[l-i+n] && !dia2[l+i])
{
c[i]=1;
dia1[l-i+n]=1;
dia2[l+i]=1;
rez[l]=i;
backt(l+1);
c[i]=0;
dia1[l-i+n]=0;
dia2[l+i]=0;
}
}
int main()
{
freopen("damesah.in","r",stdin);
freopen("damesah.out","w",stdout);
scanf("%d",&n);
backt(1);
printf("%d",rasp);
return 0;
}