Pagini recente » Cod sursa (job #1047980) | Monitorul de evaluare | Cod sursa (job #873995) | Cod sursa (job #2317749) | Cod sursa (job #1373930)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int N, sol[15], freq[15], k, rez;
int modul(int x) {
return max(x, -x);
}
void afis() {
for(int i = 1; i <= N; ++i) {
fout << sol[i] << ' ';
}
}
void bkt(int pos) {
if(pos == N + 1) {
for(int i = 1; i < N; ++i) {
for(int j = i + 1; j <= N; ++j) {
if(modul(sol[i] - sol[j]) == j - i) {
return ;
}
}
}
if(k == 0) afis();
k = 1;
rez++;
}
else {
for(int i = 1; i <= N; ++i) {
if(freq[i] == 0) {
freq[i] = 1;
sol[pos] = i;
bkt(pos + 1);
freq[i] = sol[pos] = 0;
}
}
}
}
int main() {
fin >> N;
bkt(1);
fout << '\n' << rez << '\n';
fin.close();
fout.close();
return 0;
}