Cod sursa(job #2373128)

Utilizator Liviu_Ionut_MoantaMoanta Ionut Liviu Liviu_Ionut_Moanta Data 7 martie 2019 12:23:17
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n,i,j,sol,k,ok;
int v[15],w[15],x[15],t[15];
int cont(int a,int pas,int k){
    if(pas==1)
        return 1;
    for(int j=1;j<pas;j++){
        if(x[j]==a)
            return 0;
    }
    if(k>=1){
        for(int j=1;j<=k;j++){
            if(w[j]==a-pas)
                return 0;
            if(t[j]==a+pas)
                return 0;
        }
    }
    return 1;

}
void backl(int pas){
    if(pas==n+1){
        if(ok==0){
            ok=1;
            for(int i=1;i<=n;i++){
                fout<<x[i]<<" ";
            }
            fout<<"\n";
        }
        sol++;
    }
    for(int i=1;i<=n;i++){
        if(cont(i,pas,k)==1){
            x[pas]=i;
            w[++k]=i-pas;
            t[k]=i+pas;
            backl(pas+1);
            k--;
        }
    }

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