Перебор сочетанийограничение по времени на тест 2 секундыограничение по памяти на тест 64 мегабайтаввод стандартный вводвывод стандартный выводВыведите все сочетания натуральных чисел от 1 до N, содержащие ровно K элементов.Входные данныеВвод содержит целые числа N и K (1 ≤ K ≤ N ≤ 9).Выходные данныеВыведите одну или более строк, содержащих все K-элементные сочетания чисел от 1 до N в лексикографическом порядке (см. примеры).Примерывходные данные3 2выходные данные1 2 1 3 2 3 входные данные4 2выходные данные1 2 1 3 1 4 2 3 2 4 3 4
void generateCombinations(vector& combination, int N, int K, int start) { if (combination.size() == K) { for (int num : combination) { cout << num << " "; } cout << endl; return; }
for (int i = start; i <= N; i++) { combination.push_back(i); generateCombinations(combination, N, K, i + 1); combination.pop_back(); }
}
int main() { int N, K; cin >> N >> K;
vector<int> combination; generateCombinations(combination, N, K, 1); return 0;
using namespace std;
void generateCombinations(vector& combination, int N, int K, int start) {
for (int i = start; i <= N; i++) {if (combination.size() == K) {
for (int num : combination) {
cout << num << " ";
}
cout << endl;
return;
}
combination.push_back(i);
generateCombinations(combination, N, K, i + 1);
combination.pop_back();
}
}
int main() {
vector<int> combination;int N, K;
cin >> N >> K;
generateCombinations(combination, N, K, 1);
return 0;
}