Cod sursa(job #2271895)

Utilizator joy333Steluta Talpau joy333 Data 29 octombrie 2018 14:36:36
Problema Submultimi Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("submultimi.in");
ofstream fout("submultimi.out");

vector<int>return_submultime(int x, int n){
    int var=1;
    vector<int>aux;
    for(int i=1; i<=n;i++){
        if((x&var)==1){
            aux.push_back(i);
        }
        x=x>>1;

    }
    return aux;

}

vector<vector<int>>submultimi(int n){
    vector<vector<int>>answer;
    vector<int>aux;
    if(n==1){
        aux.push_back(1);
        answer.push_back(aux);
        return answer;
    }
    int x=1;
    for(int i=1; i<n;i++){
        x=(x<<1)|1;
    }
    int var=1;
    while(x>0){
        aux=return_submultime(x,n);
        answer.push_back(aux);
        aux.clear();
        x=x-1;

    }
    return answer;
}
int main()
{
    int n;
    fin>>n;
    vector<vector<int>>v=submultimi(n);
    for(int i=0; i<v.size();i++){
        for(int j=0; j<v[i].size();j++){
            fout<<v[i][j]<<" ";
        }
        fout<<"\n";
    }
    return 0;
}