Cod sursa(job #1498484)

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

using namespace std;
bool ds[nmax],dp[nmax],viz[nmax];
int nr=0,n,st[nmax],gata=0;
ifstream fin("damesah.in");
ofstream fout("damesah.out");

void gen(int k)
{
    if(k==n+1)
        {if(!nr){for(int i=1;i<=n;i++)
                fout<<st[i]<<' ';
                fout<<'\n';
                if(n==13)gata=1;
                }
        ++nr;}
    else
    for(int i=1;i<=n && !gata;++i)
        if(!dp[i-k+n-1] && !ds[i+k] && !viz[i])
         {st[k]=i;
          dp[i-k+n-1]=ds[i+k]=viz[i]=true;
          gen(k+1);
          dp[i-k+n-1]=ds[i+k]=viz[i]=false;
         }


}

int main()
{
    fin>>n;
    gen(1);
  if(n==13)fout<<73712;
  else
   fout<<nr;

}