Cod sursa(job #2638018)

Utilizator alex.livadaruLivadaru Alexandru alex.livadaru Data 26 iulie 2020 13:37:18
Problema Combinari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;

ifstream fin("combinari.in");
ofstream fout("combinari.out");

void printSol(vector<int> &solution) {
    for (int i = 0; i < solution.size(); ++i) {
        fout << solution[i] << " ";
    }
    fout << "\n";
}

void back(int step, int stop,
vector<int> &domain, vector<int> &solution) {
    if (step == stop) {
        printSol(solution);
        return;
    }

    int i = step > 0 ? solution[step - 1] + 1 : 1;
    for (; i <= domain.size(); ++i) {
        solution[step] = i;
        back(step + 1, stop, domain, solution);
    }
}

int main() {
    int n, k;
    fin >> n >> k;
    fin.close();

    vector<int> domain(n), solution(k);

    for (int i = 0; i < n; ++i) {
        domain[i] = i + 1;
    }

    back(0, k, domain, solution);
    fout.close();

    return 0;
}