Cod sursa(job #1340733)

Utilizator mihai.constantinConstantin Mihai mihai.constantin Data 11 februarie 2015 23:44:49
Problema Submultimi Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <cstdio>
#define NMax 10
#define NrMaxS (1<<NMax)
using namespace std;

int n; int C[NrMaxS][NMax];

void AFISARE();
void GenerareCod(int);

void GenerareCod(int x)
{
    if(x==1) C[1][0]=1;
    else
    {
        GenerareCod(x-1);
        for(int i=(1<<(x-1))-1; i>=0; i--)
        {
            //oglindim C(x-1) si completam cu 1 coloana x-1
            for(int j=0; j<x-1; j++)
                C[(1<<x)-i-1][j]= C[i][j];
            C[(1<<x)-i-1][x-1]=1;
        }
    }
}

void AFISARE()
{
    for(int i=1; i< 1<<n; i++) // 1 << n == 2 la puterea n
    {
        for(int j=0; j<n; j++) if(C[i][j]==1) printf("%d ",j+1);
        printf("\n");
    }
}


int main()
{
    freopen("submultimi.in", "r", stdin);
    freopen("submultimi.out", "w", stdout);

    scanf("%d",&n);
    GenerareCod(n);
    AFISARE();

    return 0;
}