Cod sursa(job #1714022)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 7 iunie 2016 09:43:31
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <cstdio>
#include <bitset>

using namespace std;
FILE *fin=fopen ("damesah.in","r");
FILE *fout=fopen ("damesah.out","w");
int x[14],n,sol;
bitset <14> C;
bitset <30> DS;
bitset <30> DP;
void back (int pas){
    if (pas>n){
        sol++;
        if (sol==1){
            for (int i=1;i<=n;i++)
                fprintf (fout,"%d ",x[i]);
            fprintf (fout,"\n");
        }
    }
    else
        for (int i=1;i<=n;i++){
            if (C[i]==0 && DS[i+pas]==0 && DP[i-pas+n]==0){
                C[i]=1;
                DS[i+pas]=1;
                DP[i-pas+n]=1;
                x[pas]=i;
                back(pas+1);
                C[i]=0;
                DS[i+pas]=0;
                DP[i-pas+n]=0;
            }
        }
}
int main()
{
    fscanf (fin,"%d",&n);
    back(1);
    fprintf (fout,"%d",sol);
    return 0;
}