Cod sursa(job #1880017)

Utilizator DenisONIcBanu Denis Andrei DenisONIc Data 15 februarie 2017 12:50:49
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
using namespace std;

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

int n,uz[20],ok,x[20],nr,uzdp[50],uzds[50];

void afisare()
{
    for (int i=1;i<=n;i++)
        g<<x[i]<<' ';
    g<<'\n';
}

void bkt(int k)
{
    if (k>n)
    {
        nr++;
        if (ok==0)
        {
            ok=1;
            afisare();
        }
    }
    else
    {
        for (int i=1;i<=n;i++)
        {
            if (!uz[i] && !uzdp[n-i+k] && !uzds[i+k])
            {
                uz[i] = 1;
                uzdp[n-i+k] = 1;
                uzds[i+k] = 1;
                x[k] = i;
                bkt(k+1);
                uz[i] = 0;
                uzdp[n-i+k] = 0;
                uzds[i+k] = 0;
            }
        }
    }
}


int main()
{
    f>>n;

    bkt(1);

    g<<nr;

    return 0;
}