Mai intai trebuie sa te autentifici.
Cod sursa(job #2336257)
Utilizator | Data | 4 februarie 2019 22:21:51 | |
---|---|---|---|
Problema | Problema Damelor | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.93 kb |
#include <bits/stdc++.h>
using namespace std ;
const int NR = 100002 ;
ifstream in ("damesah.in") ;
ofstream out ("damesah.out") ;
bool d [ 14 ][ 14 ] ;
int n , cnt ;
bool clearz ( int i , int j )
{
int a , b , k ;
for ( k = 1 ; k <= i ; ++ k ) if ( d [ k ][ j ] ) return false ;
a = i , b = j ;
for ( ; a && b <= n ; a -- , b ++ )
{
if ( d [ a ][ b ] ) return false ;
}
a = i , b = j ;
for ( ; b && a ; a -- , b -- )
{
if ( d [ a ][ b ] ) return false ;
}
return true ;
}
int bt ( int level )
{
if ( level == n + 1 ) return ++ cnt , 0 ;
int j ;
for ( j = 1 ; j <= n ; j ++ )
{
if ( clearz ( level , j ) )
{
d [ level ][ j ] = true ;
bt ( level + 1 ) ;
d [ level ][ j ] = false ;
}
}
return 0 ;
}
int main ()
{
in >> n ;
bt( 1 ) ;
out << cnt ;
}