Cod sursa(job #2452592)

Utilizator TheGodFather2131Alexandru Miclea TheGodFather2131 Data 31 august 2019 13:38:15
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
//ALEXANDRU MICLEA

#include <vector>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <set>
#include <unordered_map>
#include <time.h>
#include <iomanip>
#include <deque>
#include <math.h>
#include <cmath>
#include <assert.h>
#include <stack>
#include <bitset>
#include <random>
#include <chrono>

using namespace std;

#include <fstream>
ifstream cin("damesah.in"); ofstream cout("damesah.out");

bool used[15];
int ans[15];
bool diag1[30];
bool diag2[30];
int n, c=0;

int backt(int q) {
	if (q > n) {
		c++;
		if (c == 1) {
			for (int i = 1; i <= n; i++) {
				cout << ans[i] << " ";
			}
			cout << '\n';
		}
	}
	for (int i = 1; i <= n; i++) {
		if (!used[i] && !diag1[q-i+n] && !diag2[i+q]) {
			used[i] = true;
			diag1[q-i+n] = true;
			diag2[i + q] = true;
			ans[q] = i;
			backt(q+1);
			used[i] = false;
			diag1[q-i+n] = false;
			diag2[i + q] = false;
		}
	}
	
}

int main() {

	cin >> n;
	backt(1);
	cout << c;
	return 0;
}