Cod sursa(job #2023705)

Utilizator darkraven13Stefan Bereghici darkraven13 Data 19 septembrie 2017 13:26:54
Problema Submultimi Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>
#include <vector>
#include <cmath>
using namespace std;
#define pb push_back
typedef vector < vector <int> > vector2d;

class SubsetsGenerator {
public :
    static vector2d getSubsets(int n){
        vector2d subsets;
        for (int bitMask = 1; bitMask < (1<<n); ++bitMask){
            vector <int> newSubset;
            for (int floatBit = 1; floatBit <= bitMask; floatBit <<= 1){
                if (floatBit & bitMask){
                    newSubset.pb((int)log2(floatBit) + 1);
                }
            }
            subsets.pb(newSubset);
        }
        return subsets;
    }
};

int main(){
    ifstream cin("submultimi.in");
    ofstream cout("submultimi.out");
    int n;
    cin >> n;
    vector2d subsets = SubsetsGenerator::getSubsets(n);
    for (vector <int> subset : subsets){
        for (int i : subset){
            cout << i << " ";
        }
        cout <<"\n";
    }
    cin.close();
    cout.close();
    return 0;
}