Pagini recente » Cod sursa (job #521156) | Cod sursa (job #1273554) | Cod sursa (job #1876109) | Statisticile problemei Ecuatie | Cod sursa (job #1255068)
#include <fstream>
#include <vector>
#include <unordered_set>
void printPerm(std::vector<int> &perm, std::ofstream &out)
{
for (auto &i : perm)
out << i + 1 << " ";
out << "\n";
}
void back(std::vector<int> &perm, std::size_t pos,
std::vector<bool> &added, std::ofstream &out)
{
if (pos == perm.size()) {
printPerm(perm, out);
return;
}
for (std::size_t i = 0; i < perm.size(); ++i) {
perm[pos] = i;
if (!added[i]) {
added[i] = true;
back(perm, pos + 1, added, out);
added[i] = false;
}
}
}
void genPerm(int N, std::ofstream &out)
{
std::vector<int> v(N, -1);
std::vector<bool> added(N, false);
back(v, 0, added, out);
}
int main()
{
std::ifstream in("permutari.in");
std::ofstream out("permutari.out");
int N;
in >> N;
in.close();
genPerm(N, out);
out.close();
return 0;
}