Cod sursa(job #2373621)

Utilizator AndreiD31Dragan Andrei AndreiD31 Data 7 martie 2019 14:36:11
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("damesah.in");
ofstream g("damesah.out");


int n,ok=1,nr,sol[51],first_sol[51];

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

void beck(int k)
{
    int i;
    if(k==n+1)
    {
        nr++;
        if(ok==1)
        {
            for(i=1;i<=n;i++)
                first_sol[i]=sol[i];
            ok=0;
        }
    }
    else
    {
        for(i=1;i<=n;i++)
        {
            sol[k]=i;
            if(okay(k))beck(k+1);
        }
    }
}


int i;

int main()
{
    f>>n;
    beck(1);

    for(i=1;i<=n;i++)
        g<<first_sol[i]<<" ";
    g<<'\n';
    g<<nr;

    return 0;
}