Cod sursa(job #503446)
#include<cstdio>
int valid(int st[50],int k)
{int i;
for(i=1;i<k;i++)
if(st[i]==st[k])
return 0;
return 1;}
void tipar(int st[50],int k)
{int i;
for(i=1;i<=k;i++)
printf("%d ",st[i]);
printf("\n");}
int main()
{int n,p,k,st[50];
freopen("submultimi.in","rt",stdin);
freopen("submultimi.out","wt",stdout);
scanf("%d",&n);
for(p=1;p<=n;p++)
{k=1;
st[k]=0;
while(k>0)
{st[k]++;
if(valid(st,k)==1)
if(st[k]<=n)
if(k==p)
tipar(st,k);
else
{k++;
st[k]=st[k-1];}
else
k--;}}
fclose(stdin);
fclose(stdout);
return 0;}