Cod sursa(job #1880000)

Utilizator EuAlexOtaku Hikikomori EuAlex Data 15 februarie 2017 12:31:51
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <cstdio>

using namespace std;

int n, rasp;
int st[20];
bool c[20], d1[40], d2[40];

void bkt(int l) {
    if(l == n + 1) {
        if(rasp == 0) {
            for(int i = 1; i <= n; ++ i) {
                printf("%d ", st[i]);
            }
            printf("\n");
        }
        ++ rasp;
    } else {
        for(int i = 1; i <= n; ++ i) {
            if(!c[i] && !d1[l - i + n] && !d2[l + i - 1]) {
                st[l] = i;
                c[i] = d1[l - i + n] = d2[l + i - 1] = 1;
                bkt(l + 1);
                c[i] = d1[l - i + n] = d2[l + i - 1] = 0;
            }
        }
    }
}

int main() {
    freopen("damesah.in", "r", stdin);
    freopen("damesah.out", "w", stdout);

    scanf("%d", &n);
    bkt(1);
    printf("%d", rasp);

    return 0;
}