BOJ_단계별로 풀어보기(9단계~)/[13단계] 백트래킹
[백준 15651] N과 M (4)
pushback
2022. 3. 11. 16:40
비내림차순.. 별 거 없다.
이전 재귀함수에서 뽑힌 숫자부터 for문을 돌려주면 된다.
#include <bits/stdc++.h>
using namespace std;
int N, M;
string ans;
void recur(int prev, int cnt) {
if (cnt == M) {
ans.back() = '\n';
cout << ans;
return;
}
for (int cur = prev; cur <= N; ++cur) {
ans += cur + '0';
ans += ' ';
recur(cur, cnt + 1);
ans.pop_back();
ans.pop_back();
}
}
int main() {
ios::ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin >> N >> M;
recur(1, 0);
return 0;
}