Cod sursa(job #2078583)

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

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