Pagini recente » Cod sursa (job #104426) | Cod sursa (job #2192671) | Cod sursa (job #461275) | Cod sursa (job #2095736) | Cod sursa (job #1877090)
#include <bits/stdc++.h>
using namespace std;
const int kMaxN = 13;
int n, counter = 0;
int v[kMaxN + 1];
void backtrack(int k)
{
if (k == n) {
if (++counter == 1) {
for (int i = 0; i < n; ++i) printf("%d ", v[i]);
printf("\n");
}
return;
}
for (int i = 1; i <= n; ++i) {
bool valid = true;
for (int j = 0; j < k; ++j) {
if (v[j] == i || v[j] - j == i - k ||
v[j] + j == i + k) {
valid = false;
break;
}
}
if (!valid) continue;
v[k] = i;
backtrack(k + 1);
}
}
int main()
{
freopen("damesah.in", "rt", stdin);
freopen("damesah.out", "wt", stdout);
scanf("%d", &n);
backtrack(0);
printf("%d\n", counter);
return 0;
}