Cod sursa(job #1680107)

Utilizator GinguIonutGinguIonut GinguIonut Data 8 aprilie 2016 15:21:12
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>

#define nMax 14
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int Sol[nMax], n, nrSol, main_diag[2*nMax], sec_diag[2*nMax], col[nMax];
void write(int k)
{
    nrSol++;

    if(nrSol==1)
    {
        for(int i=1;i<=k;i++)
            fout<<Sol[i]<<" ";
        fout<<'\n';
    }
}
void back(int k)
{
    if(k==n+1)
    {
        write(k-1);
        return;
    }

    for(int i=1;i<=n;i++)
    {
        if(main_diag[i+n-k]==0 && sec_diag[i+k-1]==0 && col[i]==0)
        {
            Sol[k]=i;
            main_diag[i+n-k]=sec_diag[i+k-1]=col[i]=1;
            back(k+1);
            main_diag[i+n-k]=sec_diag[i+k-1]=col[i]=0;
        }
    }
}
int main()
{
    fin>>n;
    back(1);
    fout<<nrSol;
    return 0;
}