Cod sursa(job #3303454)

Utilizator gugalcromMuntoiu Vlad-Ioan gugalcrom Data 15 iulie 2025 17:06:17
Problema Combinari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.09 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

struct Combinari {
    int N, K;
    vector<char> vizitat;
    vector<char> combinare;
    explicit Combinari(char N, char K) {
        this->N = N;
        this->K = K;
        vizitat.resize(N);
    }
    void generare(ostream &out) {
        if(combinare.size() < K) {
            int mn = -1;
            if(combinare.size()) {
                mn = combinare.back();
            }
            for(int i=mn+1; i<N; ++i) {
                if(!vizitat[i]) {
                    combinare.push_back(i);
                    vizitat[i] = 1;
                    generare(out);
                    vizitat[i] = 0;
                    combinare.pop_back();
                }
            }
        } else {
            for(auto a: combinare) {
                out << (int)a + 1 << ' ';
            }
            out << '\n';
        }
    }
};

int main() {
    ifstream fin("combinari.in");
    ofstream fout("combinari.out");
    int N, K;
    fin >> N >> K;
    Combinari generator(N, K);
    generator.generare(fout);
    return 0;
}