Cod sursa(job #1972098)

Utilizator andreiutu111Noroc Andrei Mihail andreiutu111 Data 21 aprilie 2017 21:33:28
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;

int N,v[14],nr;

int valid(int k){

    for(int i=1;i<k;++i)
        if(v[i]==v[k] || abs(v[k]-v[i])==k-i)
            return 0;
    return 1;

}

int sol(int k){
    return k==N;
}

void afis(int k){

    for(int i=1;i<=k;++i)printf("%d ",v[i]);
    printf("\n");

}

void back(int k){

    for(int i=1;i<=N;++i){
        v[k]=i;

        if(valid(k)){

            if(sol(k)){
                nr++;
                if(nr==1)afis(k);
            }else back(k+1);

        }

    }

}

int main()
{
    freopen("damesah.in","r",stdin);
    freopen("damesah.out","w",stdout);
    scanf("%d",&N);
    back(1);
    printf("%d",nr);

}