Cod sursa(job #2428775)

Utilizator HelloWorldBogdan Rizescu HelloWorld Data 6 iunie 2019 13:25:41
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
using namespace std;
ifstream in("damesah.in");
ofstream out("damesah.out");
int n,sol,ok,s[15],f[15];
int verif(int linie)
{
    int lin,a,b;
    if (f[s[linie]]>1) return 0;
    lin=linie-1;
    a=s[linie]-1;
    b=s[linie]+1;
    while (lin>=1)
    {
        if (s[lin]==a || s[lin]==b)
            return 0;
        a--;
        b++;
        lin--;
    }
    return 1;
}
void dame(int lin)
{
    if (lin==n+1)
    {
        sol++;
        if (!ok)
        {
            for (int i=1; i<=n; ++i)
                out<<s[i]<<" ";
            ok=1;
        }
    }
    for (int i=1; i<=n; ++i)
    {
        s[lin]=i;
        f[i]++;
        if (verif(lin))
            dame(lin+1);
        s[lin]=0;
        f[i]--;
    }
}
int main()
{
    in>>n;
    dame(1);
    out<<"\n"<<sol;
}