Pagini recente » Monitorul de evaluare | Cod sursa (job #1403855)
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
ofstream g("submultimi.out");
int n,st[17],k,uz[17],as,ev;
int aresuccesor()
{
if(st[k]==n+1) return 0;
else return 1;
}
void afis()
{
for(int i=1;i<=k;i++)
{
g<<st[i]<<" ";
}
g<<'\n';
}
int main()
{
freopen("submultimi.in","r",stdin);
scanf("%d",&n);
st[1]=0;
uz[0]=1;
k=1;
while(k>0)
{
as=1;
ev=0;
while(as&&!ev)
{
st[k]++;
as=aresuccesor();
ev=(uz[st[k]]==0);
}
if(as)
{
afis();
if(k!=n)
{
uz[st[k]]=1;
k++;
st[k]=0;
}
}
else
{
k--;
uz[st[k]]=0;
}
}
return 0;
}