Pagini recente » Cod sursa (job #2914729) | Cod sursa (job #886775) | Cod sursa (job #1180039) | Cod sursa (job #1535796) | Cod sursa (job #1237098)
#include <fstream>
#define IN "damesah.in"
#define OUT "damesah.out"
const int MAX = 15 ;
using namespace std;
ifstream fin ( IN ) ;
ofstream fout ( OUT ) ;
int col [ MAX ] , dp [ 2 * MAX ] , ds [ 2 * MAX ] , n , ok , nrs , sol [ MAX ] ;
void afis ( ) ;
void back ( int k ) ;
int main()
{
fin >> n ;
back ( 1 ) ;
fout << nrs ;
return 0;
}
void back ( int k ){
if ( k == n + 1 ){
if ( !ok )
afis ( ) ;
nrs ++ ;
}
else
for ( register int i = 1 ; i <= n ; ++ i ){
if ( !col [ i ] and !dp [ i - k + n ] and !ds [ i + k ] ){
col [ i ] = dp [ i - k + n ] = ds [ i + k ] = 1 ;
sol [ k ] = i ;
back ( k + 1 ) ;
col [ i ] = dp [ i - k + n ] = ds [ i + k ] = sol [ k ] = 0 ;
}
}
}
void afis ( ){
for ( register int i = 1 ; i <= n ; ++ i )
fout << sol [ i ] << " " ;
fout << endl ;
ok = 1 ;
}