Cod sursa(job #1104574)

Utilizator otnielMercea Otniel otniel Data 10 februarie 2014 21:17:17
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include<iostream>
using namespace std;
#include<stdio.h>
#include<stdlib.h>
FILE *f,*g;
int sol[100],n,i,num,coloana[100],linie[100];
int valid(int k)
{
    if(coloana[sol[k]]==1||linie[k]==1)
            return 0;
        return 1;
}
int back(int k)
{
    if(k==n+1)
    {num++;
    if(num==1)
        {for(i=1;i<k;i++)
            fprintf(g,"%d ",sol[i]);
            fprintf(g,"\n");
            }

    }
    else
    {
        sol[k]=0;
        while(sol[k]<n)
            {sol[k]++;
            linie[k]=1;
            coloana[sol[k]]=1;
            if(valid(k))
            back(k+1);
            linie[k]=0;
            coloana[sol[k]]=1;}
    }


}
int main()
{
    f=fopen("damesah.in","r");
    g=fopen("damesah.out","w");
    fscanf(f,"%d",&n);
    back(1);
    fprintf(g,"%d",num);
}