Cod sursa(job #2154554)

Utilizator UnseenMarksmanDavid Catalin UnseenMarksman Data 7 martie 2018 05:55:57
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <cstdio>
#define N 15

using namespace std;

int n, cnt, queen[N];
bool col[N], main_diag[N*2], sec_diag[N*2];

void backtracking(int k)
{
    if(k==n+1)
    {
        if(cnt<1)
        {
            for(int i=1; i<=n; i++)
            {
                printf("%d ", queen[i]);
            }
            printf("\n");
        }
        cnt++;
    }
    else
    {
        for(int i=1; i<=n; i++)
        {
            if(!col[i] && !main_diag[i-k+n-1] && !sec_diag[i+k])
            {
                queen[k]=i;
                col[i]=main_diag[i-k+n-1]=sec_diag[i+k]=true;
                backtracking(k+1);
                col[i]=main_diag[i-k+n-1]=sec_diag[i+k]=false;

            }
        }
    }
}

int main()
{
    freopen("damesah.in", "r", stdin);
    freopen("damesah.out", "w", stdout);
    scanf("%d ", &n);
    backtracking(1);
    printf("%d\n", cnt);
    return 0;
}