Cod sursa(job #2078615)

Utilizator Cristian25Cristian Stanciu Cristian25 Data 29 noiembrie 2017 19:27:25
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
short sol[20],N,nrsol;
bool ebun(short k)
{
    for(short i=0;i<k;++i)
    {
        if(sol[i]==sol[k])
            return 0;
        if(k-i==abs(sol[k]-sol[i]))
            return 0;
    }
    return 1;
}
void Afis()
{
    for(short i=0;i<N;++i)
        for(short j=0;j<N;++j)
            if(sol[i]==j)
                g<<1+j<<' ';
}
void Back(short k)
{
    for(short i=0;i<N;++i)
    {
        sol[k]=i;
        if(ebun(k))
        {
            if(k==N-1)
            {
                if(!nrsol)
                    Afis();
                ++nrsol;
            }
            else Back(k+1);
        }
    }
}
int main()
{
    f>>N;
    Back(0);
    g<<'\n'<<nrsol;
    return 0;
}