Cod sursa(job #1498468)

Utilizator Julian.FMI Caluian Iulian Julian. Data 8 octombrie 2015 17:06:50
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#define nmax 14

using namespace std;
int nr,n,st[nmax],ds[2*nmax],dp[2*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++)
        cout<<st[i]<<' ';
    cout<<'\n';
    nr=1;
}

void gen(int k)
{
    if(k==n+1)
        if(!nr)afisare();
            else nr++;
    else
        for(int i=1;i<=n;i++)
        {int dpr,dsc;
        dpr=(i-k)+n+1;
         dsc=(k-n+i-1)+n+1;

         if(!dp[dpr] && !ds[dsc] && !viz[i])
         {st[k]=i;dp[dpr]=1;ds[dsc]=1;
         viz[i]=1;
          gen(k+1);
            dp[dpr]=0;ds[dsc]=0;
         viz[i]=0;
         }
        }

}

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

}