Cod sursa(job #1797719)

Utilizator PopMariusIonutPop Marius Ionut PopMariusIonut Data 4 noiembrie 2016 18:32:23
Problema Submultimi Scor 100
Compilator cpp Status done
Runda selectie_emag_mediu_2016_runda3 Marime 0.63 kb
#include<stdio.h>
int n,k,nr;
int sol[20],d[20];

void calc()
{
    int i;
    for(i=1;i<=n;i++)
        d[i]=1<<(n-i);
}

void rez()
{
    int x=0,i;
    nr=0;
    for(i=1;i<=n && x<k;i++)
        if(x<k-d[i])
            x+=d[i];
        else
        {
            x++;
            sol[++nr]=i;
        }
}

int main()
{
    freopen("submultimi.in","r",stdin);
    freopen("submultimi.out","w",stdout);
    scanf("%d",&n);
    calc();
    int i,lim=1<<n;
    for(k=1;k<lim;k++)
    {
        rez();
        for(i=1;i<=nr;i++)
            printf("%d ",sol[i]);
        printf("\n");
    }
    return 0;
}