Cod sursa(job #2174747)

Utilizator bertifloreaFlorea Ioan Albert bertiflorea Data 16 martie 2018 13:14:07
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;

ifstream f("damesah.in");
ofstream g("damesah.out");
int n,st[100],nr,ok;

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

void afis(int p)
{
    if(ok==0)
        {
            for(int i=1;i<=p;i++)
                g<<st[i]<<' ';
            g<<'\n';
            ok=1;
        }
}

int sol(int p)
{   return p==n;    }

void backtr(int p)
{
    for(int i=1;i<=n;i++)
    {
        st[p]=i;
        if(valid(p))
            if(sol(p))  {afis(p);   nr++;}
            else        backtr(p+1);
    }
}

int main()
{
    f>>n;
    backtr(1);
    g<<nr;
}