Pagini recente » Cod sursa (job #76052) | Cod sursa (job #1957761) | Cod sursa (job #1487985) | Cod sursa (job #969633) | Cod sursa (job #1098323)
#include <fstream>
#include <algorithm>
#include <vector>
#include <cstring>
#define NMAX 14
using namespace std;
ifstream in ( "damesah.in" );
ofstream out ( "damesah.out" );
int main_D[2*NMAX],second_D[2*NMAX] , column[NMAX];
int elem[NMAX] , Sol , N ;
void Back ( int K )
{
int i , j ;
for ( i = 1 ; i <= N ; ++i )
{
if ( column[i] or main_D[N-K+i] or second_D[K+i-1] )
continue;
elem[K] = i ;
column[i] = main_D[N-K+i] = second_D[K+i-1] = true ;
if ( K == N )
{
if ( Sol < 1 )
{
for ( j = 1 ; j <= N ; ++j )
out << elem[j] << " ";
}
++Sol;
}
else
Back ( K + 1 );
column[i] = main_D[N-K+i] = second_D[K+i-1] = false ;
}
}
int main ( void )
{
int i , j ;
in >> N ;
Back ( 1 );
out << Sol << "\n";
in.close();
out.close();
return 0 ;
}