Pagini recente » Cod sursa (job #2647883) | Cod sursa (job #1391696) | Cod sursa (job #1912697) | Rating Alexandru (QAZRDX) | Cod sursa (job #1096487)
#include <algorithm>
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n;
int x[15];
int nrsol = 0;
void print()
{
if (nrsol == 0) {
for(int i = 1; i <= n; i++) {
g << x[i] << ' ';
}
g << endl;
}
nrsol++;
}
bool check(int n) {
if (n == 1) {
return true;
}
for (int i = 1; i < n; i++) {
if (x[i] == x[n] || abs(i - n) == abs(x[i] - x[n])) {
return false;
}
}
return true;
}
void back(int k = 1) {
for (int i = 1; i <= n; i++) {
x[k] = i;
if (check(k) == false) {
continue;
}
if (k < n) {
back(k + 1);
} else {
print();
}
}
}
int main()
{
f >> n;
back();
g << nrsol << endl;
return 0;
}