Pagini recente » Cod sursa (job #3306237) | Cod sursa (job #407554) | Cod sursa (job #2869990) | Cod sursa (job #77994) | Cod sursa (job #3354989)
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int main(void) {
ifstream fin("combinari.in");
ofstream fout("combinari.out");
int n, k;
fin >> n >> k;
vector<int> solution;
vector<int> used(n + 1, 0);
auto print_array = [&](vector<int> &a) -> void {
for (int i = 0; i < k; i++) {
fout << a[i] << " ";
}
fout << "\n";
};
auto backtracking = [&](auto self) -> void {
if (solution.size() == k) {
print_array(solution);
return;
}
for (int i = 1; i <= n; i++) {
if (solution.empty() || !used[i] && solution.back() < i) {
solution.push_back(i);
used[i] = 1;
self(self);
solution.pop_back();
used[i] = 0;
}
}
};
backtracking(backtracking);
return 0;
}