Pagini recente » Cod sursa (job #1328519) | Cod sursa (job #2132714) | Cod sursa (job #164960) | Cod sursa (job #1798825) | Cod sursa (job #2437068)
#include <vector>
#include <fstream>
#include <algorithm>
using std::vector;
using std::next_permutation;
std::ifstream fin("damesah.in");
std::ofstream fout("damesah.out");
inline int abs(int x) {
return x < 0 ? -x : x;
}
int main() {
int n; fin >> n;
vector<int> perm(n + 1);
for (int i = 1; i <= n; i++)
perm[i] = i;
int cnt = 0;
vector<int> sol;
do {
bool ok = true;
for (int i = 1; i < n; i++)
for (int j = i + 1; j <= n; j++)
if (abs(i - j) == abs(perm[i] - perm[j])) {
ok = false;
break;
}
if (ok) {
cnt++;
if (sol.empty())
sol = perm;
}
} while (next_permutation(perm.begin() + 1, perm.end()));
for (int i = 1; i <= n; i++)
fout << sol[i] << ' ';
fout << '\n' << cnt << '\n';
fout.close();
return 0;
}