Cod sursa(job #1744067)

Utilizator B_RazvanBaboiu Razvan B_Razvan Data 19 august 2016 11:38:47
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <cstdio>

using namespace std;

int n, viz[20], vizdp[20], vizds[20], sol[20], solutie;

void afisare()
{
    for(int i=1; i<=n; ++i)
        printf("%d ", sol[i]);
    printf("\n");
}
void back(int k)
{
    if(k==n+1)
    {
        if(solutie==0)
            afisare();
        solutie++;
        return;
    }
    for(int i=1; i<=n; ++i)
    {
        if(viz[i]==0)
            if(vizdp[n+k-i]==0)
                if(vizds[k+i]==0)
                {
                    vizdp[n+k-i]=1;
                    vizds[k+i]=1;
                    viz[i]=1;
                    sol[k]=i;
                    back(k+1);
                    viz[i]=0;
                    vizds[k+i]=0;
                    vizdp[n+k-i]=0;
                }
    }
}
int main()
{
    freopen("damesah.in", "r", stdin);
    freopen("damesah.out", "w", stdout);
    scanf("%d", &n);
    back(1);
    printf("%d", solutie);
    return 0;
}