Cod sursa(job #3248012)

Utilizator Sorin_GabrielGabara Sorin Gabriel Sorin_Gabriel Data 10 octombrie 2024 15:01:39
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <bits/stdc++.h>
#include <fstream>
#define VMAX 15
using namespace std;
ifstream fin ("damesah.in");
ofstream fout ("damesah.out");
int regine [VMAX];
long long int nr;
int prima_diag[2*VMAX], doua_diag[2*VMAX],coloane[VMAX];

void dame(int index,int n)
{
    int i,k,j;

    if(index==n)
    {
        if(nr==0)
        {
            for(i=0;i<n;i++)
            {
                fout<<regine[i]+1<<' ';
            }
            fout<<'\n';
        }
        nr++;
        return;
    }

    for(i=0;i<n;i++)
    {
        if(coloane[i]==0 && prima_diag[VMAX+i-index]==0 && doua_diag[index+i]==0)
        {
            regine[index]=i;
            coloane[i]=prima_diag[VMAX+i-index]=doua_diag[index+i]=1;
            dame(index+1,n);
            regine[index]=0;
            coloane[i]=prima_diag[VMAX+i-index]=doua_diag[index+i]=0;
        }
    }

}


int main()
{
    int n;
    fin>>n;
    dame(0,n);
    fout<<nr<<'\n';
    return 0;
}