Cod sursa(job #1093121)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 27 ianuarie 2014 19:08:54
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int N,x[20],Sol,Flag;
int valid(int k)
{
    for(int i=1;i<k;i++)
        if(x[k]==x[i])
            return 0;
    for(int i=1;i<k;i++)
        if(fabs(x[k]-x[i])==k-i)
            return 0;
    return 1;
}
void afisare()
{
    for(int i=1;i<=N;i++)
        fout<<x[i]<<" ";
    fout<<"\n";
}
void Back(int k)
{
    int i;
    for(i=1;i<=N;i++)
        {
            x[k]=i;
            if(valid(k))
                if(k==N)
                    {
                        if(!Flag)
                        {
                            Flag=1;
                            afisare();
                        }
                        Sol++;
                    }
                else
                    Back(k+1);
        }
}
int main()
{
    fin>>N;
    Back(1);
    fout<<Sol<<"\n";
    return 0;
}