Pagini recente » Monitorul de evaluare | Cod sursa (job #3355222)
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
void printSol(vector<int>& sol) {
for (int i = 0; i < sol.size(); i++)
fout << sol[i] << " ";
fout << '\n';
}
void bt(int step, int n, vector<int>& sol, vector<bool>& viz) {
if (step == n) {
printSol(sol);
}
for (int i = 1; i <= n; i++) {
if (!viz[i]) {
viz[i] = true;
sol.push_back(i);
bt(step + 1, n, sol, viz);
sol.pop_back();
viz[i] = false;
}
}
}
int main() {
int n;
fin >> n;
vector<int> sol;
vector<bool> viz(n, 0);
bt(0, n, sol, viz);
return 0;
}