Cod sursa(job #3286269)

Utilizator vlad231Gheorghica Istrate David vlad231 Data 13 martie 2025 21:46:55
Problema Submultimi Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

int main() {
    // Citirea datelor de intrare
    ifstream in("submultimi.in");
    ofstream out("submultimi.out");

    int n;
    in >> n;

    // Generăm submulțimile
    int totalSubsets = (1 << n);  // 2^n posibile submulțimi (inclusiv submulțimea vidă)

    for (int mask = 1; mask < totalSubsets; ++mask) {  // începem de la 1 pentru a exclude submulțimea vidă
        vector<int> subset;

        // Verificăm fiecare bit din mask
        for (int i = 0; i < n; ++i) {
            if (mask & (1 << i)) {  // dacă bitul i din mask este 1, adăugăm elementul i+1
                subset.push_back(i + 1);
            }
        }

        // Afișăm submulțimea curentă
        for (size_t i = 0; i < subset.size(); ++i) {
            out << subset[i] << " ";
        }
        out << endl;
    }

    return 0;
}