Cod sursa(job #1540104)

Utilizator tiby10Tibi P tiby10 Data 2 decembrie 2015 09:12:23
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
#define MAXN 14
int n, sol, C[MAXN];
bool col[MAXN], diagP[MAXN*2], diagS[MAXN*2];
void output(){
    for(int i=1; i<=n; ++i)
        fout<<C[i]<<" ";
    fout<<'\n';
}

void bkt(int l){
    if(l==n+1){
        ++sol;
        if(sol==1)
            output();
        return;
    }
    for(int c=1; c<=n; ++c){
        if(!col[c] && !diagP[c-l+n-1] && !diagS[l+c]){
            C[l]=c;
            col[c]=diagP[c-l+n-1]=diagS[l+c]=true;
            bkt(l+1);
            col[c]=diagP[c-l+n-1]=diagS[l+c]=false;
        }
    }
}

int main()
{
    fin>>n;
    bkt(1);
    fout<<sol;
    return 0;
}