Cod sursa(job #1791483)

Utilizator medicinedoctoralexandru medicinedoctor Data 29 octombrie 2016 13:56:43
Problema Submultimi Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <vector>
#include <algorithm>
#include <fstream>
//#include <iostream>

using namespace std;

ifstream cin("submultimi.in");
ofstream cout("submultimi.out");

bool unu(vector <bool> b)
{
    for (int i=0; i<b.size(); i++)
    {
        if (!b[i]) return false;
    }
    return true;
}

bool nb(vector <bool> &x)
{
    if (unu(x)) return false;
    vector<bool>::reverse_iterator p=find(x.rbegin(),x.rend(),false);
    *p=true;
    fill(x.rbegin(),p,false);
    return true;
}

main()
{
    int n;
    cin >> n;
    vector <bool> a(n);
    while (nb(a))
    {
        for (int i=0; i<a.size(); i++)
        {
            if (a[i]) cout << i+1 << ' ';
        }
        cout << '\n';
    }
}