Pagini recente » Cod sursa (job #440828) | Cod sursa (job #744738) | Cod sursa (job #2283091) | Cod sursa (job #1120048) | Cod sursa (job #1725978)
#include <cstdio>
#define NMax 15
int queen[NMax];
int col[NMax];
int sec[NMax*2];
int princ[NMax*2];
int NrSol,n,ok,dif;
void Gen(int k)
{
if( k == n )
{
if(!ok)
{
for( int i = 0; i < n; ++i ) printf("%d ",queen[i]+1);
printf("\n");
ok = 1;
}
++NrSol;
}
else
for( int i = 0; i < n; ++i )
if( !col[i] && !sec[ k + i ] && !princ[ i - k + n - 1 ] )
{
queen[k] = i;
col[i] = 1;
sec[ k + i ] = 1;
princ[ i - k + n - 1 ] = 1;
Gen(k+1);
col[i] = 0;
sec[ k + i ] = 0;
princ[ i - k + n - 1 ] = 0;
}
}
int main(){
freopen("damesah.in","r",stdin);
freopen("damesah.out","w",stdout);
scanf("%d",&n);
Gen(0);
printf("%d\n",NrSol);
return 0;
}