Cod sursa(job #2030582)

Utilizator KleinWolfPop Dan Andrei KleinWolf Data 1 octombrie 2017 19:46:52
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <math.h>
#include <fstream>

using namespace std;

int sol[14],n,v;
bool f;
ifstream in ("damesah.in");
ofstream out ("damesah.out");
int conditie (int n)
{
    int i;
    for (i=1;i<n;i++)
        if (sol[n]==sol[i] || abs(i-n)==abs(sol[n]-sol[i]))
            return 0;
    return 1;
}

void tiparire()
{
    int i;
    for(i=1;i<=n;i++)
        out<<sol[i]<<" ";
    out<<"\n";
    f=1;
}

void Back (int k)
{
    int i;
    for (i=1;i<=n;i++)
    {
        //cout<<"1";
        sol[k]=i;
        if (conditie(k))
        {
            //cout<<"2";
            if(k==n)
                {
                    if (!f)tiparire();
                    v++;
                }
            else Back(k+1);
        }
    }
}

int main()
{
    in>>n;
    Back(1);
    out<<v;
}