Cod sursa(job #1224539)

Utilizator MaarcellKurt Godel Maarcell Data 31 august 2014 12:31:04
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#define lld long long int
using namespace std;

int N,sol[13]; lld res; bool col[20], d1[30],d2[30];

ifstream in("damesah.in");
ofstream out("damesah.out");

void solve(int lin){
    if (lin>N){
        res++;
        if (res==1)
            for (int i=1; i<lin; i++)
                out << sol[i] << " ";

        return;
    }

    for (int i=1; i<=N; i++)
        if (!col[i] && !d1[N+lin-i] && !d2[lin+i-1]){
            sol[lin]=i;
            col[i]=d1[N+lin-i]=d2[lin+i-1]=1;
            solve(lin+1);
            col[i]=d1[N+lin-i]=d2[lin+i-1]=0;
        }
}

int main(){
    in >> N;

    solve(1);
    out << "\n" << res << "\n";
    return 0;
}