Cod sursa(job #1423335)

Utilizator felipeGFilipGherman felipeG Data 21 aprilie 2015 18:48:05
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <cstdio>
#include <cmath>
using namespace std;

FILE *f=fopen("damesah.in","r");
FILE *g=fopen("damesah.out","w");

int n,st[13],i,j,ok=0,nr;

void afis()
{
    for(i=0;i<n;i++)
        fprintf(g,"%d ",st[i]+1);
    fprintf(g,"\n");
}
bool valid(int niv)
{
    for(int i=0;i<niv;++i)
       if((st[niv]==st[i]) || (abs(st[i]-st[niv])==niv-i))
         return 0;
    return 1;
}
void back(int niv)
{
    if(niv==n)
    {
        if(ok==0)
        {
           afis();
           ok=1;
        }
        nr++;
    }
    else
      for(st[niv]=0;st[niv]<n;st[niv]++)
         if(valid(niv))
            back(niv+1);
}
int main()
{
    fscanf(f,"%d",&n);
    back(0);
    fprintf(g,"%d",nr);
    return 0;
}