Pagini recente » Cod sursa (job #2128535) | Cod sursa (job #1795100) | Cod sursa (job #629559) | Cod sursa (job #861259) | Cod sursa (job #1197323)
#include <cstdio>
using namespace std;
int n,i,dame[20],sol;
bool diag1[30],diag2[30],col[20];
void back(int l)
{
if(l==n+1)
{
if(!sol)
{
for(i=1;i<=n;i++)
printf("%d ",dame[i]);
printf("\n");
}
sol++;
return;
}
for(int i=1;i<=n;i++)
{
if(!col[i]&&!diag1[n-l+i]&&!diag2[l+i-1])
{
dame[l]=i;
col[i]=1;
diag1[n-l+i]=1;
diag2[l+i-1]=1;
back(l+1);
diag1[n-l+i]=0;
diag2[l+i-1]=0;
col[i]=0;
}
}
}
int main()
{
freopen("damesah.in","r",stdin);
freopen("damesah.out","w",stdout);
scanf("%d",&n);
back(1);
printf("%d\n",sol);
return 0;
}