Pagini recente » Cod sursa (job #2179795) | Cod sursa (job #1913268) | Cod sursa (job #1072006) | Cod sursa (job #1895695) | Cod sursa (job #3163310)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n, r, d[15];
bool col[15], d1[15], d2[15], ok;
static inline void afis() {
if(!ok) {
ok = true;
for(int i = 1; i <= n; i++) fout << d[i] << " ";
}
r++;
}
static inline void Calc(int c) {
if(c > n) afis();
else {
for(int l = 1; l <= n; l++) {
if(!col[l] && !d1[l + c] && !d2[l - c + n - 1]) {
d[c] = l;
col[l] = true;
d1[l + c] = true;
d2[l - c + n - 1] = true;
Calc(c + 1);
d[c] = 0;
col[l] = false;
d1[l + c] = false;
d2[l - c + n - 1] = false;
}
}
}
}
int main() {
fin >> n;
Calc(1);
fout << "\n" << r;
return 0;
}