Cod sursa(job #2158012)

Utilizator KazvikKokovics Razvan Kazvik Data 10 martie 2018 09:17:17
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream>
#include<cmath>

using namespace std;

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

int n,s[14],sol;

void afis(){
    int i,j;
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++)
			if(s[i]==j)
				out<<j<<" ";
	}
	sol++;
	out<<'\n';
}

bool verif(int i,int j){
	int k;
	for(k=1;k<i;k++)
		if(s[k]==j)
			return false;
	for(k=1;k<i;k++)
		if(abs(s[k]-j)==i-k)
			return false;
	return true;
}

void dame(int i){
	if(i>n)
        if(sol==0)
            afis();
        else
            sol++;
	else
		for(int j=1;j<=n;j++)
			if(verif(i,j)){
				s[i]=j;
				dame(i+1);
			}
}

int main(){
	in>>n;
	dame(1);
	out<<sol;
	return 0;
}