Cod sursa(job #2055846)

Utilizator tudor.podinaTudor Podina tudor.podina Data 3 noiembrie 2017 20:21:27
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <cmath>

using namespace std;

ifstream cin("damesah.in");
ofstream cout("damesah.out");

int n,sol,st[20];

int afisare()
{
    for(int i=1;i<=n;i++)
        cout<<st[i]<<" ";
    cout<<"\n";
}

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

int backt(int k)
{
    for(int i=1;i<=n;i++)
    {
        st[k]=i;
        if(valid(k))
            if(k==n)
            {
                sol++;
                if(sol==1)
                    afisare();
            }
            else backt(k+1);
    }
}

int main()
{
    cin>>n;
    backt(1);
    cout<<sol;
    return 0;
}