Pagini recente » Cod sursa (job #2411977) | Cod sursa (job #1744138) | Cod sursa (job #2934753) | Cod sursa (job #1549344) | Cod sursa (job #1567834)
#include<cstdio>
using namespace std;
int n, x[16], sol;
bool found = false;
int abs(int x) {
if (x < 0)
return -1*x;
return x;
}
bool valid(int k) {
for (int i=1; i<k; ++i)
if (x[i] == x[k] || k - i == abs(x[k] - x[i]))
return false;
return true;
}
void back(int k) {
for (int i=1; i<=n; ++i) {
x[k] = i;
if (valid(k)) {
if (k == n) {
if (!found) {
for (int j=1; j<=n; ++j)
printf ("%d ", x[j]);
printf ("\n");
found = true;
}
++sol;
} else {
back (k+1);
}
}
}
}
int main() {
if (freopen("damesah.in", "r", stdin)) ;
if (freopen("damesah.out", "w", stdout)) ;
if (scanf("%d", &n)) ;
back(1);
printf ("%d", sol);
fclose(stdin);
fclose(stdout);
return 0;
}