Pagini recente » Cod sursa (job #2045463) | Istoria paginii runda/gonathan | Cod sursa (job #1191666) | Cod sursa (job #2097889) | Cod sursa (job #1649820)
#include <cstdio>
using namespace std;
int v[15],n,sol,prima=1;
char vaz1[15],vaz2[30],vaz3[30];
void back(int k)
{
if(k==n+1)
{
if(prima)
{
for(int i=1;i<=n;i++) printf("%d ",v[i]);
printf("\n");
prima=0;
}
sol++;
}
else for(int i=1;i<=n;i++)
if(!vaz1[i] && !vaz2[n+i-k] && !vaz3[i+k])
{
vaz1[i]=vaz2[n+i-k]=vaz3[i+k]=1;
v[k]=i;
back(k+1);
vaz1[i]=vaz2[n+i-k]=vaz3[i+k]=0;
}
}
int main()
{
freopen("damesah.in", "r", stdin);
freopen("damesah.out", "w", stdout);
scanf("%d",&n);
back(1);
printf("%d",sol);
return 0;
}