Cod sursa(job #3265530)

Utilizator PetruApostolApostol Mihnea Petru PetruApostol Data 30 decembrie 2024 23:08:06
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
using namespace std;

#pragma GCC optimize("O3,unroll-loops")

ifstream cin("damesah.in");
ofstream cout("damesah.out");

int col[14],diag1[25],diag2[25],rasp[14],poz[14],stg,cntsol,n;

void backtrack(int a){
    int i;
    if(a==n+1){
        cntsol++;
        if(stg==1){
            for(i=1;i<=n;i++) rasp[i]=poz[i];
            stg=0;
        }
    }
    for(i=1;i<=n;i++){
        if(col[i]==0 && diag1[n+a-i]==0 && diag2[a+i]==0){
            col[i]=1;
            diag1[n+a-i]=1;diag2[a+i]=1;
            poz[a]=i;
            backtrack(a+1);
            col[i]=0;
            diag1[n+a-i]=0;diag2[a+i]=0;
        }
    }
}

int main()
{
    int poz=1,i;stg=1;
    cin>>n;
    backtrack(1);
    for(i=1;i<=n;i++) cout<<rasp[i]<<" ";
    cout<<"\n"<<cntsol;
    return 0;
}