Cod sursa(job #2168486)

Utilizator Turturica_DorinTurturica Dorin Turturica_Dorin Data 14 martie 2018 11:11:39
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 1.18 kb
#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;
ifstream fin ("damesah.in");
ofstream fout ("damesah.out");

int fv[ 50 ], fv2[ 50 ], fv3[ 50 ], n, afi, st[ 20 ], k;

void backtr ( int nivel )
{
    int i;
    if ( nivel > n )
    {
        if ( afi == 0 )
        {
            k ++;
            afi = 1;
            for ( i = 1; i <= n; i++ )
            {
                fout << st[ i ] << ' ';
            }
            fout << '\n';
        }
        else
        {
            k ++;
        }
        return;
    }

    for ( i = 1; i <= n; i++ )
    {
        if ( fv[ 15 + ( nivel -  i ) ] == 0 && fv2[ 15 + ( ( n - nivel ) + ( n -  i ) ) ] == 0 && fv3[ i ] == 0 )
        {
            fv[ 15 + ( nivel -  i ) ] = 1;
            fv2[ 15 + ( ( n - nivel ) + ( n -  i ) ) ] = 1;
            fv3[  i ] = 1;
            st[ nivel ] = i;
            backtr ( nivel + 1 );
            fv[ 15 + ( nivel -  i ) ] = 0;
            fv2[ 15 + ( ( n - nivel ) + ( n -  i ) ) ] = 0;
            fv3[ i ] = 0 ;
            st[ nivel ] = 0;
        }
    }
}

int main ()
{
    fin>> n;
    backtr ( 1 );
    fout << k;
}