Pagini recente » Cod sursa (job #583113) | Cod sursa (job #1986103) | Cod sursa (job #45442) | Cod sursa (job #2682810) | Cod sursa (job #2777513)
//
// Created by Andrei Covaci on 03.09.2021.
//
#include <fstream>
#include <iostream>
#include <vector>
#define INPUT "combinari.in"
#define OUTPUT "combinari.out"
//#define INPUT "input.in"
//#define OUTPUT "output.out"
using namespace std;
int n, k;
pair<vector<int>, int> read() {
ifstream in(INPUT);
in >> n >> k;
vector<int> res;
res.reserve(n + 1);
for(int i = 0; i <= n; ++i) {
res.push_back(i);
}
in.close();
return pair<vector<int>, int>(res, 1);
}
ofstream out(OUTPUT);
int solve(pair<vector<int>, int> x) {
vector<int> v = x.first;
int pos = x.second;
for(int i = pos; i <= n; ++i) {
swap(v[pos], v[i]);
if (v[pos] < v[pos - 1]) {
swap(v[i], v[pos]);
continue;
}
if (pos == k) {
for (int j = 1; j <= k; ++j) {
out << v[j] << ' ';
}
out << '\n';
swap(v[i], v[pos]);
continue;
}
solve(pair<vector<int>, int>(v, pos + 1));
swap(v[i], v[pos]);
}
return 0;
}
void print(int c) {
out.close();
}
int main() {
auto nums = read();
auto res = solve(nums);
print(res);
return 0;
}