Cod sursa(job #2538622)

Utilizator eugen5092eugen barbulescu eugen5092 Data 4 februarie 2020 21:22:47
Problema Problema Damelor Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>
using namespace std;
ifstream ci("damesah.in");
ofstream cou("damesah.out");
int n,sol[20],f[20];
int p=1,cn;
void rez(){
int i,j,x,y,z,veri=1;
for(i=1;i<=n;i++){
        y=sol[i];
    for(j=1;j<=n;j++){
            if(i!=j){
          z=sol[j];

          if(abs(i-j)==abs(y-z) ){veri=0;}
          //cout<<i<<" "<<j<<" "<<y<<" "<<z<<" "<<veri<<"\n";

            }
    }
}
if(p&&veri){
    p=0;
    for(i=1;i<=n;i++){
        cou<<sol[i]<<" ";
    }
    cou<<"\n";
}
if( veri){cn++;
for(i=1;i<=n;i++){
        cout<<sol[i]<<" ";
    }
    cout<<"\n";
}

}

void Back(int k){
if(k==n+1){
    rez();
}else{

    for(int i=1;i<=n;i++){
        while(f[i]==1 ){
            i++;
        }
        if(i>n){return;}
        sol[k]=i;
        f[i]=1;
        Back(k+1);
        f[i]=0;

    }

}

}

int main()
{
    ci>>n;
    Back(1);
    cou<<cn;
    return 0;
}