Cod sursa(job #2096956)

Utilizator DimaTCDima Trubca DimaTC Data 30 decembrie 2017 10:23:51
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include<bits/stdc++.h>

using namespace std;

int n,k2;
int a[30][30];
bool v;
bool OK(int i, int j) {
	bool u=0;
	int i2=i, j2=j;
	while (i>=1 && j>=1 && j<=n && i<=n) {
		if (a[i][j]==1) {
			u=1; break;
		}
		i--;
		j--;
		
	}
	if (u) return 0;

	i=i2,j=j2;
	while (i>=1 && j>=1 && j<=n && i<=n) {
		if (a[i][j]==1) {
			u=1; break;
		}
		i--;
		j++;
	}
	if (u) return 0;
	i=i2,j=j2;
	while (i>=1 && j>=1 && j<=n && i<=n) {
		if (a[i][j]==1) {
			u=1; break;
		}
		i--;
	}
	
	if (u) return 0;
	return 1;
}

void BT(int k) {
	if (k==n+1) {
		k2++;
		if (k2==1) {
			for (int i=1; i<=n; i++) {
				for (int j=1; j<=n; j++) if (a[i][j]==1) cout<<j<<" ";
			} cout<<endl;
		}
		
		 return;
	}
	for (int j=1; j<=n; j++) {
		if (OK(k,j)) {
			a[k][j]=1;
			BT(k+1);
			a[k][j]=0;
		}
		
	}
	
	
}


int main() {
	ifstream cin("damesah.in");
		ofstream cout("damesah.out");
	cin>>n;
	
	BT(1);
	cout<<'\n'<<k2;
	
}