Liệt kê mọi cách chọn n phân tử trong tập m phần tử
/*
Đề: Liệt kê mọi cách chọn n phân tử trong tập m phần tử
+ Đơn giản hóa: đặt M = {1,2,...,m}
+ Cấu hình tập hợp A = (a[1],a[2],...a[n])
+ Đơn giản hóa: a[1] < a[2] < ... < a[n]
+ S[k] = {a[k-1]+1,... m}
*/
#include <bits/stdc++.h>
using namespace std;
int a[100],n,m;
void print()
{
for (int i = 1; i <= n ; i++) cout << " " << a[i];
cout << endl;
}
void create(int k)
{
if (k > n) { print(); return; }
for (int i = a[k-1] + 1 ; i <= m-n+k ; i++)
a[k] = i; create(k+1);
}
int main()
{
cin >> n >> m;
a[0] = 0;
create(1);
return 0;
}
mình chạy với test 3 5 nhưng chỉ ra kết quả là 3 4 5