Pagini recente » Cod sursa (job #2132719) | Cod sursa (job #1547385) | Cod sursa (job #1047947) | Cod sursa (job #2986426) | Cod sursa (job #1730889)
#include <fstream>
#include <cmath>
using namespace std ;
ifstream f ("damesah.in") ;
ofstream g ("damesah.out") ;
int n , nr_sol , x[15] ;
void afis ()
{
++nr_sol ;
if ( nr_sol == 1 )
{
for ( int j = 1 ; j <= n ; ++j )
g << x[j] << " " ;
g << "\n" ;
}
}
int abs ( int x )
{
if ( x < 0 )
return x * ( -1 ) ;
return x ;
}
int ok ( int i , int j )
{
x[i] = j ;
for ( int cnt = 1 ; cnt < i ; ++cnt )
if ( x[i] == x[cnt] || abs ( x[i] - x[cnt] ) == i - cnt )
return 0 ;
return 1 ;
}
void back ( int k )
{
if ( k == n + 1 )
afis () ;
else if ( k <= n )
{
for ( int j = 1 ; j <= n ; ++j )
if ( ok ( k , j ) )
{
x[k] = j ;
back ( k + 1 ) ;
x[k] = 0 ;
}
}
}
int main ()
{
f >> n ;
back ( 1 ) ;
g << nr_sol ;
}