Cod sursa(job #2386919)

Utilizator BiancaMariaVulsanVulsan Bianca Maria BiancaMariaVulsan Data 23 martie 2019 21:42:00
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int a[15],nr,n;

int valid(int t)
{
    int j;
    for(j=1; j<t; j++)
        {if(fabs(t-j)==fabs(a[t]-a[j])) // daca sunt pe aceeasi coloana
            return 0;
        if(a[j]==a[t])//nici pe aceeasi coloana
            return 0;
        }
        return 1;
}

int sol(int t)
{
    if(t==n)
        return 1;
    return 0;
}

void afis()
{
    int j;
    for(j=1; j<=n; j++)
        g<<a[j]<<" ";
    g<<"\n";
}

void bkt(int x)
{
    int i;
    for(i=1; i<=n; i++)
    {
        a[x]=i;
        if(valid(x))
            if(sol(x))
            {nr++;
            if(nr==1) afis();
            }
        else
            bkt(x+1);
    }
}

int main()
{
    f>>n;
    bkt(1);
    g<<nr;
    f.close();
    g.close();
    return 0;
}