Cod sursa(job #1341665)

Utilizator alexandru.ghergutAlexandru-Gabriel Ghergut alexandru.ghergut Data 12 februarie 2015 23:24:28
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>

using namespace std;

int logPow(int base, int exponent)
{
    int result = 1;
    while (exponent > 0)
    {
        if (exponent & 1)
            result *= base;
        base *= base;
        exponent >>= 1;
    }

    return result;
}

int main()
{
    int n;
    ifstream f("submultimi.in");
    f >> n;
    f.close();

    int upperBound = logPow(2, n), k, pos;
    ofstream g("submultimi.out");
    for (int i = 1; i < upperBound; i++)
    {
        k = i;
        pos = 1;
        while (k > 0)
        {
            if (k & 1)
                g << pos << " ";
            pos++;
            k >>= 1;
        }
        g << '\n';
    }
    g.close();

    return 0;
}