Pagini recente » Cod sursa (job #1095826) | Cod sursa (job #1922424) | Cod sursa (job #2199409) | Cod sursa (job #1734136) | Cod sursa (job #1803139)
#include <iostream>
#include <vector>
#include <stdlib.h>
#include <fstream>
using namespace std;
ifstream in("damesah.in");
ofstream out("damesah.out");
void back(int pos, int n, vector<bool>& used, vector<int>& result, int& count) {
if (pos == n) {
if(count == 0) {
for(int i : result) {
out << i << " ";
}
out << "\n";
}
count ++;
return;
}
for (int i = 1; i <= n; i++) {
if (!used[i]) {
bool valid = true;
for (int k = 0; k < pos; k++) {
if (abs(pos - k) == abs(i - result[k])) {
valid = false;
}
}
if (valid) {
result.push_back(i);
used[i] = true;
back(pos + 1, n, used, result, count);
result.pop_back();
used[i] = false;
}
}
}
}
int main() {
int N;
in >> N;
vector<int> result;
vector<bool> used(14);
int count = 0;
back(0, N, used, result, count);
out << count;
return 0;
}