Cod sursa(job #2285158)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 18 noiembrie 2018 11:20:23
Problema Problema Damelor Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n,viz[20],x[20],et,dp[20],ds[20];
int valid(int k , int i){
    if(viz[x[k]]==1)
        return 0;
    if(ds[k+i-1]!=0 || dp[n-(i-k)]!=0)
        return 0;
    return 1;
}
void tipar(){
    if(et==0){
    for(int i=1;i<=n;i++)
            g<<x[i]<<' ';
        g<<'\n';
        et=1;
    }
    else
        et++;
}
void back(int k){
    for(int i=1;i<=n;i++){
        x[k]=i;
        if(valid(k,x[k])==1){
            viz[i]=1;
            dp[n-(i-k)]=1;
            ds[k+i-1]=1;
            if(k==n){
                tipar();
            }
            else
                back(k+1);
            viz[i]=0;
            dp[n-(i-k)]=0;
            ds[k+i-1]=0;
        }
    }
}
int main()
{   f>>n;
    et=0;
    back(1);
    g<<et;
    return 0;
}