Pagini recente » Cod sursa (job #258531) | Cod sursa (job #1932843) | Cod sursa (job #373184) | Cod sursa (job #1422489) | Cod sursa (job #1438455)
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n, i, j, k, l, m;
int poz, minn;
int var, nr, sol;
int p[15];
int main() {
fin >> n;
for (i = 1; i <= n; ++i) {
p[i] = i;
}
do {
poz = n;
while (p[poz] < p[poz - 1] && poz > 1) {
poz--;
}
poz--;
if (poz) {
minn = p[poz + 1];
j = poz + 1;
for (i = poz + 1; i <= n; ++i) {
if (minn > p[i] && p[i] > p[poz]) {
minn = p[i];
j = i;
}
}
k = p[poz];
p[poz] = p[j];
p[j] = k;
for (i = 1; i <= (n - poz) / 2; ++i) {
k = p[poz + i];
p[poz + i] = p[n - i + 1];
p[n - i + 1] = k;
}
var = 1;
for (i = 1; i <= n; ++i) {
for (j = i + 1; j <= n; ++j) {
nr = j - i;
if (p[i] == p[j] + nr || p[i] == p[j] - nr) {
var = 2;
j = n + 10;
i = n + 10;
}
}
}
if (var == 1) {
sol++;
if (sol == 1) {
for (i = 1; i <= n; ++i) {
fout << p[i] << ' ';
}
}
}
}
}
while (poz);
fout << '\n';
fout << sol;
fout.close();
return 0;
}