Cod sursa(job #1015978)

Utilizator horatiu11Ilie Ovidiu Horatiu horatiu11 Data 25 octombrie 2013 15:22:07
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
# include <cstdio>
using namespace std;
int n,as,ev,st[101];
void succ(int k, int &as)
{
    if(st[k]<1)
    {
        st[k]++;
        as=1;
    }
    else as=0;
}
void valid(int k, int &ev)
{
    ev=1;
    if(k>n)ev=0;
}
void tipar(int k)
{
    int i;bool ok=false;
    for(i=1;i<=k;++i)
        if(st[i]==1)printf("%d ",i),ok=true;
    if(ok)printf("\n");
}
void back(int k)
{
    st[k]=-1;
    while(k>0)
    {
        do
        {
            succ(k,as);
            if(as)valid(k,ev);
        }while(as && !ev);
        if(as)
            if(k==n)tipar(k);
            else{k++;st[k]=-1;}
        else k--;
    }
}
int main()
{
    freopen("submultimi.in","r",stdin);
    freopen("submultimi.out","w",stdout);
    scanf("%d",&n);
    back(1);
    return 0;
}