Cod sursa(job #1934241)

Utilizator CrystyAngelDinu Cristian CrystyAngel Data 21 martie 2017 11:58:07
Problema Problema Damelor Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("damesah.in");
ofstream fout("damesah.out");

int v[15][15];
int bkt[15];
int poz[15];
int n,nr;

void bact(int k)
{
    if(k==n+1)
    {
        ++nr;
        if(nr==1)
        {
            for(int i=1; i<=n; ++i)
                fout<<bkt[i]<<' ';
            fout<<'\n';
        }
    }
    else
    {
        for(int i=1; i<=n; ++i)
            if(!v[k][i] && !poz[i])
            {
                bkt[k]=i;
                poz[i]=1;
                int a,b;
                for(a=k,b=i; a<=n && b>=0; ++a,--b)
                    v[a][b]=1;
                for(a=k,b=i; a<=n && b<=n; ++a,++b)
                    v[a][b]=1;
                bact(k+1);
                poz[i]=0;
                for(a=k,b=i; a<=n && b>=0; ++a,--b)
                    v[a][b]=0;
                for(a=k,b=i; a<=n && b<=n; ++a,++b)
                    v[a][b]=0;
            }
    }
}

int main()
{
    fin>>n;
    bact(1);
    fout<<nr;
}