매우 기초적인 재귀훈련문제다.
이조차 버벅였다.
/*
종만북 1권 149페이지
*/
#include <bits/stdc++.h>
#define endl '\n'
#define FOR(i,n) for(int i=0;i<(n);++i)
using namespace std;
/*
7C4라면
입력: 7 4
0 1 2 3
0 1 2 4
0 1 2 5
...
3 4 5 6
*/
int N, M;
void Combination(vector<int>&vct) {
if (vct.size() == M) {
for (auto a : vct) cout << a << " ";
cout << endl;
return;
}
int biggest = vct.empty() ? 0 : vct.back() + 1;
for (int i = biggest; i < N; i++) {
vct.push_back(i);
Combination(vct);
vct.pop_back();
}
}
int main()
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
cin >> N >> M;
vector<int> stk;
Combination(stk);
return 0;
}