Cod sursa(job #724119)

Utilizator alex_unixPetenchea Alexandru alex_unix Data 26 martie 2012 11:30:51
Problema Submultimi Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb

#include <fstream>

bool v [17];

inline void print (std::ostream &output, bool *limit)
{
    for (bool *ptr(v + 1) ; ptr < limit ; ++ptr)
        if (*ptr)
            output << ptr - v << ' ';
    output << '\n';
}

int main (void)
{
    std::ifstream input("submultimi.in");
    unsigned short n;
    input >> n;
    input.close();
    bool * limit(v + n + 1);
    std::ofstream output("submultimi.out");
    for (unsigned short i(1) ; i <= n ; ++i)
        output << i << '\n';
    bool *ptr(limit - 1),*start(limit - 1),*loop;
    do
    {
        *ptr = true;
        do
        {
            loop = start;
            while (loop > ptr)
            {
                *loop = true;
                print(output,limit);
                *loop = false;
                --loop;
            }
            *start = true;
            --start;
        }
        while (start > ptr);
        do
        {
            *start = false;
            ++start;
        }
        while (start < limit);
        --start;
        *ptr = false;
        --ptr;
    }
    while (ptr > v);
    output.close();
    return 0;
}