Pagini recente » Cod sursa (job #3252463) | Cod sursa (job #2285620) | Cod sursa (job #365397) | Cod sursa (job #2530636) | Cod sursa (job #3252447)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 13
int num_n, rez;
int vec[NMAX + 1];
int f[NMAX + 1];
int fdp[2 * NMAX + 1], fds[2 * NMAX + 1];
FILE *fin, *fout;
void generare_perumatari( int poz ) {
int ind;
if ( poz == num_n + 1 ) {
rez++;
if ( rez == 1 ) {
for ( ind = 1; ind <= num_n; ind++ )
fprintf( fout, "%d ", vec[ind] );
fprintf( fout, "\n" );
}
}
for ( ind = 1; ind <= num_n; ind++ ) {
if ( f[ind] + fdp[ind + poz] + fds[num_n - ind + poz] == 0 ) {
f[ind] = fdp[ind + poz] = fds[num_n - ind + poz] = 1;
vec[poz] = ind;
generare_perumatari( poz + 1 );
f[ind] = fdp[ind + poz] = fds[num_n - ind + poz] = 0;
}
}
}
int main()
{
fin = fopen( "damesah.in", "r" );
fscanf( fin, "%d", &num_n );
fclose( fin );
fout = fopen( "damesah.out", "w" );
generare_perumatari( 1 );
fprintf( fout, "%d\n", rez );
fclose( fout );
return 0;
}