Cod sursa(job #3303459)

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

using namespace std;

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

int main() {
    ifstream fin("submultimi.in");
    ofstream fout("submultimi.out");
    int N;
    fin >> N;
    Submultimi generator(N);
    generator.generare(fout);
    return 0;
}