Cod sursa(job #1505325)

Utilizator tiby10Tibi P tiby10 Data 19 octombrie 2015 00:12:12
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 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[abs(c-l)] && !diagS[l+c]){
            C[l]=c;
            col[c]=diagP[abs(c-l)]=diagS[l+c]=true;
            bkt(l+1);
            col[c]=diagP[abs(c-l)]=diagS[l+c]=false;
        }
    }
}

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