Cod sursa(job #1545585)

Utilizator sebinechitasebi nechita sebinechita Data 6 decembrie 2015 21:04:56
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
#define cout fout
int n, s, a[15], diag[30], diag2[30], line[30], ok;

void bac(int k)
{
    int i;
    if(k == n + 1)
    {
        s++;
        if(ok)
            return;
        for(i = 1 ; i <= n ; i++)
        {
            cout << a[i] << " ";
        }
        cout << "\n";
        ok = 1;
    }
    for(i = 1 ; i <= n ; i++)
    {
        if(!line[i] && !diag[i + k] && !diag2[i - k + n + 1])
        {
            a[k] = i;
            line[i] = 1;
            diag[i + k] = 1;
            diag2[i - k + n + 1] = 1;
            bac(k + 1);
            line[i] = 0;
            diag[i + k] = 0;
            diag2[i - k + n + 1] = 0;
        }
    }
}

int main()
{
    fin >> n;
    bac(1);
    cout << s << "\n";
}