Cod sursa(job #1391296)

Utilizator vladdeditaVlad Dedita vladdedita Data 17 martie 2015 19:59:20
Problema Problema Damelor Scor 90
Compilator c Status done
Runda Arhiva educationala Marime 0.7 kb
#include<stdlib.h>
#include<stdio.h>
int sol[14];
int contor = 0;
int n;
FILE *fIn;
FILE *fOut;
int validare(int k)
{
	for (int i = 0; i < k; i++)
		if (sol[i] == sol[k] || abs(i - k) == abs(sol[i] - sol[k]))
			return 0;
	return 1;
}
void afisare()
{
	for (int i = 0; i < n; i++)
		fprintf(fOut, "%d ", sol[i]);
}
void dame(int k)
{
	
	if (k == n)
	{
		if (contor == 0)
			afisare();
		contor++;
	}
	for (int i = 1; i <=n; i++)
	{
		sol[k] = i;
		if (validare(k))
			dame(k + 1);
	}
}
void main()
{
	fIn = fopen("damesah.in", "r");
	fOut = fopen("damesah.out", "w");

	
	fscanf(fIn, "%d", &n);

	dame(0);
	fprintf(fOut,"\n%d", contor);
	fclose(fOut);
	fclose(fIn);
}