Cod sursa(job #2285164)

Utilizator YetoAdrian Tonica Yeto Data 18 noiembrie 2018 11:23:09
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#include <cstdlib>
using namespace std;
int n, v[14], c[14], ds[30], dp[30], sol;
ifstream fin ("damesah.in");
ofstream fout ("damesah.out");

int tipar (int k)
{
    int i=0;
    for (i=1;i<=k;i++)
        fout<<v[i]<<" ";
    fout<<"\n";
}

void back (int k)
{
    int i=0;
    for (i=1;i<=n;i++) {
        if (c[i]==0 && dp[n-(i-k)]==0 && ds[k+i-1]==0) {
            v[k]=i;
            c[i]=1;
            dp[n-(i-k)]=1;
            ds[k+i-1]=1;
            if (k==n) {
                sol++;
                if (sol==1)
                    tipar(k);
            }
            else {
                back(k+1);
            }
            c[i]=0;
            dp[n-(i-k)]=0;
            ds[k+i-1]=0;
        }

    }
}

int main () {
    fin>>n;
    back(1);
    fout<<sol;

    return 0;
}