Cod sursa(job #2029987)

Utilizator randiboyPucani Catalin randiboy Data 30 septembrie 2017 19:15:03
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
//#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n, v[100], sol;
void afisare()
{
	int i;
	sol++;
	if (sol == 1)
	{
		for (i = 1; i <= n; i++)
			g << v[i] << " ";
		g << "\n";
	}
}
int valid(int k)
{
	int i;
	for (i = 1; i <= k - 1; i++)
		if ((v[i] == v[k]) || (abs(v[k] - v[i]) == (k - i)))
			return 0;
	return 1;
}
int solutie(int k)
{
	if (k == n)
		return 1;
	return 0;
}
void BK(int k)
{
	int i;
	for (i = 1; i <= n; i++)
	{
		v[k] = i;
		if (valid(k) == 1)
		{
			if (solutie(k) == 1)
				afisare();
			else
				BK(k + 1);
		}
	}
}
int main()
{
	f >> n;
	BK(1);
	g << sol;
}