Cod sursa(job #1306148)

Utilizator gabrieligabrieli gabrieli Data 30 decembrie 2014 16:52:02
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

ifstream fin("combinari.in");
ofstream fout("combinari.out");
    
void back(int pos, int k, vector<bool>& used, const vector<int>& numbers) {
    if (pos == numbers.size() || k == 0) {
        if (k == 0) {
            for (int i = 0; i < pos; ++i) if (used[i])
                fout << numbers[i] << ' ';
            fout << '\n';
        }
    }
    else {        
        used[pos] = true;
        back(pos + 1, k - 1, used, numbers);
        used[pos] = false;
        
        back(pos + 1, k, used, numbers);
    }
}

int main() {    
    int n, k;
    fin >> n >> k;
    
    vector<int> numbers(n, 0);
    iota(numbers.begin(), numbers.end(), 1);
    vector<bool> used(n, false);
    
    back(0, k, used, numbers);
    
    return 0;
}