Cod sursa(job #2136781)

Utilizator mihaigrozaGroza Mihai mihaigroza Data 20 februarie 2018 10:50: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");

bool gasit=false;

int x[15],n,sol;
bool valid(int k)
{
    for(int i=1;i<k;i++)
    {
        if(x[i]==x[k])
            return false;
        if(k-i== abs(x[k]-x[i]))
            return false;
    }
    return true;
}
void afisare()
{
    gasit=true;
    for(int i=1;i<=n;i++)
        g<<x[i]<<" ";
}
int backt(int k)
{
    for(int i=1; i<=n; i++)
    {
        x[k]=i;
        if(valid(k)!=0)
            if(k==n)
            {
                sol++;
                if(gasit==false)
                afisare();
            }
            else
                backt(k+1);
    }
    return sol;
}
int main()
{
    f>>n;
    g<<endl<<backt(1);
    return 0;
}