Cod sursa(job #3233225)

Utilizator MirceaDonciuLicentaLicenta Mircea Donciu MirceaDonciuLicenta Data 2 iunie 2024 20:09:50
Problema Submultimi Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.13 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

void generateSubsets(vector<int>& set, vector<int>& subset, int index, ofstream& outfile) {
    if (index == set.size()) {
        if (!subset.empty()) {
            for (int i = 0; i < subset.size(); ++i) {
                outfile << subset[i] << " ";
            }
            outfile << endl;
        }
        return;
    }

    // Include current element in the subset
    subset.push_back(set[index]);
    generateSubsets(set, subset, index + 1, outfile);

    // Exclude current element from the subset
    subset.pop_back();
    generateSubsets(set, subset, index + 1, outfile);
}

int main() {
    ifstream infile("submultimi.in");
    ofstream outfile("submultimi.out");

    if (!infile || !outfile) {
        cerr << "Error opening file" << endl;
        return 1;
    }

    int n;
    infile >> n;

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

    vector<int> subset;
    generateSubsets(set, subset, 0, outfile);

    infile.close();
    outfile.close();

    return 0;
}