Cod sursa(job #2474816)

Utilizator LucianTLucian Trepteanu LucianT Data 15 octombrie 2019 20:49:59
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
using namespace std;

const int maxN=14;

ifstream f("damesah.in");
ofstream g("damesah.out");

int n,sol;
int stk[maxN];

bool vis[maxN];
bool mDiag[2*maxN];
bool sDiag[2*maxN];

void bkt(int k){
    if(k==n+1){
        if(sol==0){
            for(int i=1;i<=n;i++){
                g<<stk[i]<<" ";
            }
            g<<'\n';
        }
        sol++;
        return;
    }

    for(int i=1;i<=n;i++){
        if(vis[i]==false && mDiag[i-k+n]==false && sDiag[i+k]==false){
            stk[k]=i;

            vis[i]=true;
            mDiag[i-k+n]=true;
            sDiag[i+k]=true;

            bkt(k+1);

            vis[i]=false;
            mDiag[i-k+n]=false;
            sDiag[i+k]=false;
        }
    }
}

int main(){
    f>>n;

    bkt(1);
    g<<sol;

    return 0;
}