Cod sursa(job #1843215)

Utilizator igroitaGroita Igor igroita Data 8 ianuarie 2017 13:51:30
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include<fstream>
#include<cmath>
using namespace std;

ifstream cin("damesah.in");
ofstream cout("damesah.out");

int n, v[14], it=0;

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

void show(){
	for(int i=1; i<=n; ++i){
		cout<<v[i]<<" ";
	}
	cout<<"\n";
}

void dame(int k){
	for(int i=1; i<=n;++i){
			v[k]=i;
			if(valid(k)){
				if(k==n){
					if(it==0) show();
					it++;
				}
				else dame(k+1);
			}
	}
}
/*
void dame1(int k){
	for(int i=1; i<=n;++i){
			v[k]=i;
			if(valid(k)){
				if(it==0){
					if(k==n){
						 show(); ++it;
					}
					else dame1(k+1);
				}
				else{
					if(k==n) ++it;
					else dame(k+1);
				}
			}
	}
}
*/


int main(){
	
	cin>>n;
	
	dame(1);
	
	cout<<it;
	
	
	return 0;
}