#include<iostream>
#include<cmath>
#include<string>
#include<sstream>
using namespace std;
#define MAX 30
int x[MAX];
void f(int k, string str, int start, int end,int len) {
if (k == 0) {
cout << str.substr(0,str.size()-1) << endl;
return;
}
for (int i = start;i <= end;i++) {
stringstream ss;
ss << x[i];
str += ss.str() + " ";
f(k - 1, str, i + 1, end, str.size());
str = str.substr(0, len);
}
}
int main() {
int n, r;
cin >> n >> r;
for (int i = 0;i < n;i++) {
x[i] = i + 1;
}
f(r, "", 0, n - 1,0);
return 0;
}
用递归写的,运行案例也没问题,自己试了几个也没发现问题。但是只过了最后一个。。。