Pagini recente » Cod sursa (job #1581885) | Cod sursa (job #754958) | Cod sursa (job #2455745) | Cod sursa (job #676746) | Cod sursa (job #1693085)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
void output_perm(ofstream& out, int perm[], int n)
{
for (int i = 1; i <= n; i++) out << perm[i] << " ";
out << "\n";
}
int valid_perm(int k, int perm[])
{
for (int i = 1; i <= k; i++) {
for (int j = i + 1; j <= k; j++) {
if (perm[i] == perm[j]) return 0;
}
}
return 1;
}
int gen_perm(int n, int k, int perm[], ofstream& out)
{
if (k > n) output_perm(out, perm, n);
else {
for (int i = 1; i <= n; i++) {
perm[k] = i;
if (valid_perm(k, perm)) gen_perm(n, k + 1, perm, out);
}
}
}
int main()
{
ifstream in("permutari.in");
ofstream out("permutari.out");
int n;
in >> n;
int perm[n + 1];
gen_perm(n, 1, perm, out);
in.close();
out.close();
return 0;
}