Cod sursa(job #2532268)

Utilizator BAlexandruBorgovan Alexandru BAlexandru Data 27 ianuarie 2020 17:31:47
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <bits/stdc++.h>

using namespace std;

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

int n;
int c[14];
int nr;
bool u[14], ud1[25], ud2[25];

void bkt(int k, bool u[14], bool ud1[25], bool ud2[25])
{
    bool u1[14], ud11[25], ud21[25];
    memcpy(u1, u, 14);
    memcpy(ud11, ud1, 25);
    memcpy(ud21, ud2, 25);

    for (int i=1;i<=n;i++)
        if (!u1[i] && !ud11[k+i-1] && !ud21[k+n-i])
        {
            c[k]=i;
            u1[i]=1;
            ud11[k+i-1]=1;
            ud21[k+n-i]=1;

            if (k==n)
            {
                if (!nr)
                {
                    for (int j=1;j<=n;j++)
                        g<<c[j]<<" ";
                    g<<"\n";
                }
                nr++;
            }
            else
                bkt(k+1, u1, ud11, ud21);

            u1[i]=0;
            ud11[k+i-1]=0;
            ud21[k+n-i]=0;
        }
}

int main()
{
    f>>n;
    bkt(1, u, ud1, ud2);
    g<<nr;
    return 0;
}