Cod sursa(job #2474152)

Utilizator adimiclaus15Miclaus Adrian Stefan adimiclaus15 Data 14 octombrie 2019 19:35:16
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n,v[14],use[14],diagonala_principala[26],diagonala_secundara[26],sol;
void afisare(int k)
{
    for(int i=1;i<=k;i++)
        g<<v[i]<<" ";
    g<<"\n";
}
void bkt(int k)
{
    if(k==n+1)
    {
        sol++;
        if(sol==1)
            afisare(n);
    }
    else
    {
        for(int i=1;i<=n;i++)
        {
            if(use[i]==0 && diagonala_principala[i-k+n]==0 && diagonala_secundara[i+k-1]==0)
            {
                v[k]=i;
                use[i]=1;
                diagonala_principala[i-k+n]=1;
                diagonala_secundara[i+k-1]=1;
                bkt(k+1);
                v[k]=0;
                use[i]=0;
                diagonala_principala[i-k+n]=0;
                diagonala_secundara[i+k-1]=0;
            }
        }
    }
}
int main()
{
    f>>n;
    bkt(1);
    g<<sol;
    return 0;
}