Cod sursa(job #3303707)

Utilizator Maryy_1369Gociu Maria Anastasia Maryy_1369 Data 17 iulie 2025 13:55:10
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <fstream>
#include<algorithm>
#include<cmath>

using namespace std;

ifstream cin("damesah.in");
ofstream cout("damesah.out");
int sol[16];
int vidc[15];
int viddp[30];
int vidds[30];

int fctodp(int x,int y, int n){
   return x-y+n;
}

int fctods(int x,int y,int n){
  return x+y-1;
}

void bkt (int cur,int n,int &nrsol){
   if(cur==n+1){
        nrsol++;
       if(nrsol==1){
          for(int i=1;i<=n;i++){
              cout<<sol[i]<<" ";
          }
          cout<<endl;
       }
       return;
   }

   for(int i=1;i<=n;i++){
       if(vidc[i])continue;
       if(viddp[fctodp(cur,i,n)])continue;
       if(vidds[fctods(cur,i,n)])continue;

       sol[cur]=i;
       vidc[i]=1;
       viddp[fctodp(cur,i,n)]=1;
       vidds[fctods(cur,i,n)]=1;

       bkt(cur+1,n,nrsol);
       vidc[i]=0;
       viddp[fctodp(cur,i,n)]=0;
       vidds[fctods(cur,i,n)]=0;

   }

}
int main(){
    int n,ans=0;
    cin>>n;
    bkt(1,n,ans);
    cout<<ans<<endl;
}