Cod sursa(job #1257031)

Utilizator bujorcatalin14Bujor Catalin bujorcatalin14 Data 7 noiembrie 2014 09:45:20
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");

int st[15],n;
int nr,nr2;


void Afisare(int top)
{
    int i,j;

    for(i=1;i<=top;i++)
     {
         for(j=1;j<=top;j++)
          if(st[i]==j) fout<<st[i]<<" ";


     }
}
int Valid(int top)
{
    int i;
    for(i=1;i<=top-1;i++)
     if(st[top]==st[i] || abs(st[top]-st[i])==top-i) return 0;
     return 1;
}

void Back(int top)
{
    if(top > n)
    {
        if(!nr)
        {

            Afisare(top);
        }
        nr++;
        return;
    }
    for(int i = 1; i <= n; ++i)
    {
        st[top] = i;
        if( Valid(top) )
        {
            Back(top+1);
        }
    }


}

int main()
{
    fin>>n;
    Back(1);
    fout<<"\n";
    fout<<nr;
    return 0;
}