Pagini recente » Cod sursa (job #3247089) | Cod sursa (job #2182479) | Cod sursa (job #906708) | Fotbal2 | Cod sursa (job #1367064)
#include <bits/stdc++.h>
using namespace std;
#define mp make_pair
#define fs first
#define sc second
#define pob pop_back
#define pub push_back
#define eps 1E-7
#define sz(a) a.size()
#define count_one __builtin_popcount;
#define count_onell __builtin_popcountll;
#define fastIO ios_base::sync_with_stdio(false)
#define PI (acos(-1.0))
#define linf (1LL<<62)//>4e18
#define inf (0x7f7f7f7f)//>2e9
#define DEBUG 1
#ifdef DEBUG
#define D(x) x
#else
#define D(x)
#endif
#define MAXN 14
FILE *in = fopen("damesah.in", "r");
FILE *out = fopen("damesah.out", "w");
int n, ans;
int queens[MAXN];
bool col[MAXN], dp[MAXN*2], ds[MAXN*2];
void bkt(int l) {
if (l == n) {
if (ans < 1) {
for(int i = 0; i < n; ++i)
fprintf(out, "%d ", queens[i] + 1);
fprintf(out, "\n");
}
ans++;
} else {
for(int i = 0; i < n; ++i) {
if(!col[i] && !dp[i - l + n - 1] && !ds[i + l]) {
queens[l] = i;
col[i] = dp[i - l + n - 1] = ds[i + l] = true;
bkt(l + 1);
col[i] = dp[i - l + n - 1] = ds[i + l] = false;
}
}
}
}
int main()
{
ans = 0;
fscanf(in, "%d", &n);
bkt(0);
fprintf(out, "%d\n", ans);
return 0;
}