Cod sursa(job #1498447)

Utilizator Julian.FMI Caluian Iulian Julian. Data 8 octombrie 2015 16:47:05
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#define nmax 14

using namespace std;
int nr,n,st[nmax],viz[nmax];

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

int abs(int x)
{
if(x>0)return x;else return -x;
}

void afisare()
{
    for(int i=1;i<=n;i++)
        fout<<st[i]<<' ';
    fout<<'\n';
    nr=1;
}

void gen(int k)
{
    if(k==n+1)
        if(!nr)afisare();
            else nr++;
    else
        for(int i=1;i<=n;i++)
        if(!viz[i])
        {int ok=1;
            for(int j=1;j<k;j++)
            if( abs(k-j) == abs(i-st[j]) )
                ok=0;
            if(ok)
            {st[k]=i;   viz[i]=1;
             gen(k+1);
             viz[i]=0;
            }
        }

}

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

}