Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int tmp[100] = {-1};
- int arr[100];
- // Генарация сочетаний: берём p-ый по счёту элемент, находящийся на позиции pos
- void Combinations(int n, int k, int p, int pos){
- if(k > n){
- return;
- }
- // Условие выхода + вывод сочетания
- if(p == k + 1){
- for(int i = 0; i < k; ++i){
- cout << tmp[i] << " ";
- }
- cout << "\n";
- return;
- }
- for(int i = pos; i <= n - k + p - 1; i++){
- // Берём p-ый элемент
- tmp[p - 1] = arr[i];
- // Начинаем выбирать p + 1 - ый элемент, начиная с позиции i + 1
- Combinations(n, k, p + 1, i + 1);
- }
- }
- int main(){
- int n, k;
- cin >> n >> k;
- for(int i = 0; i < n; ++i){
- cin >> arr[i];
- }
- Combinations(n, k, 1, 0);
- return 0;
- }
Add Comment
Please, Sign In to add comment