Cod sursa(job #1463024)

Utilizator TeodorescuStefanEduardTeodorescu Stefan Eduard TeodorescuStefanEduard Data 19 iulie 2015 17:41:53
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>

using namespace std;

fstream in("damesah.in", ios::in);
fstream out("damesah.out", ios::out);

int n,solutii,col[15];

int valid(int);
int afis(int);
int succesor(int);
void back(int);

int main()
{
	

	in>> n;

	back(1);




	out<< solutii;

    in.close();
    out.close();

	return 0;
}


int succesor(int k)
{
	if(col[k] >= n)
		return 0;
	else
	{
		col[k]++;

		return 1;
	}
}

int valid(int k)
{
	int i;
	if(k > n)
		return 0;
	for(i=1;i<k;i++)
	{
		if((col[i] == col[k]) || ( abs(col[k]- col[i]) == abs(k-i)))
			return 0;
	}
	return 1;
}

int afis(int k)
{
	if(k > n)
	{
		if(solutii == 0)
		{
			for(int i=1;i<=n;i++)
				out<< col[i]<< " ";
			out<<"\n";
		}
		solutii++;
		return 1;
	}
	else
		return 0;
}

void back(int k)
{
	if(afis(k))
	{}
	else
	{
		col[k]= 0;

		while(succesor(k))
		{
			if(valid(k))
				back(k+1);
		}
	}


}