Cod sursa(job #1423321)

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

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

int n,st[20],i,j;

void afis()
{
    for(i=0;i<n;i++)
    {
       for(j=0;j<n;j++)
       {
         if(st[i]==j)fprintf(g,"R ");
         else fprintf(g,"* ");
       }
       fprintf(g,"\n");
    }
 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)afis();
    else
      for(st[niv]=0;st[niv]<n;st[niv]++)
         if(valid(niv))
            back(niv+1);
}
int main()
{
    fscanf(f,"%d",&n);
    back(0);
    return 0;
}