Cod sursa(job #2303308)

Utilizator danielsociuSociu Daniel danielsociu Data 15 decembrie 2018 23:29:44
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
std::ifstream cin("damesah.in");
std::ofstream cout("damesah.out");
#define maxn 14

int v[maxn];
int n,nrsol;

int solutie(int k){
	if(k==n){
		if(!nrsol)
			for(int i=1;i<=n;i++)
				cout<<v[i]<<' ';
		return 1;
	}
	return 0;
}

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

void bkt(int k){
	for(int i=1;i<=n;i++){
		v[k]=i;
		if(valid(k)){
			if(solutie(k))
				++nrsol;
			else
				bkt(k+1);
		}
	}
}

int main()
{
	cin>>n;
	bkt(1);
	cout<<'\n'<<nrsol;
	return 0;
}