Cod sursa(job #1748692)

Utilizator ValentinSavoiuFMI Savoiu Valentin-Marian ValentinSavoiu Data 26 august 2016 16:18:46
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#define MAX_N 14
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int queen[MAX_N];
bool col[MAX_N], dp[MAX_N * 2], ds[MAX_N * 2];
int nr;

void bkt( int l, int n )
{
    if ( l == n )
    {
        if ( nr < 1 )
        {
            for ( int c = 0; c < n; c++ )
                g<<queen[c]+1<<' ';
            g<<'\n';
        }
        ++nr;
    }
    else
    {
        for ( int c = 0; c < n; c++ )
        {
            if ( !col[c] && !dp[c - l + n - 1] && !ds[l + c] ) {
                queen[l] = c;

                col[c] = dp[c - l + n - 1] = ds[l + c] = 1;
                bkt(l + 1, n );
                col[c] = dp[c - l + n - 1] = ds[l + c] = 0;
            }
        }
    }
}

int main () {

    int n;
    f>>n;
    bkt(0, n);
    g<<nr;
}