Cod sursa(job #2297576)

Utilizator ScarymovieMocanu Alexandru Scarymovie Data 6 decembrie 2018 03:35:13
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>

using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int st[13],n,sol=0;
bool c[13],diagp[25],diags[25];
bool verifica(int niv)
{
    if(c[st[niv]] || diagp[niv-st[niv]+n] || diags[niv+st[niv]]) return 0;
    return 1;
}
void backtr(int niv)
{
    for(int i=0; i<n; ++i)
    {
        st[niv]=i;
        if(verifica(niv))
        {
            c[i]=1;
            diagp[niv-i+n]=1;
            diags[niv+i]=1;
            if(niv<n-1)
                backtr(niv+1);
            else
            {
                if(sol==0)
                {
                    for(int i=0; i<n; ++i)
                        g<<st[i]+1<<' ';
                    g<<'\n';
                }
                ++sol;
            }
            c[i]=0;
            diagp[niv-i+n]=0;
            diags[niv+i]=0;
        }
    }
}
int main()
{
    f>>n;
    backtr(0);
    g<<sol<<'\n';
    return 0;
}