Pagini recente » Cod sursa (job #846306) | Cod sursa (job #2648451) | Ciorna | Cod sursa (job #1877921) | Cod sursa (job #557618)
Cod sursa(job #557618)
# include <iostream.h>
# include <fstream.h>
fstream f("combinari.in",ios::in);
fstream g("combinari.out",ios::out);
int st[100],k,n,ev,as,y;
void init (int k, int st[100])
{
st[k]=0;
}
void succesor (int k, int st[100], int &as)
{
if (st[k]<n)
{
as=1;
st[k]=st[k]+1;
}
else as=0;
}
void valid (int k, int st[100], int &ev)
{
int i,j;
ev=1;
for (i=1;i<k;i++)
for (j=i;j<=k;j++)
if (st[i]>=st[k]) ev=0;
}
int solutie (int k)
{
if (k==y) return 1;
else return 0;
}
void tipar(int k)
{
int i;
for (i=1;i<=k;i++) g<<st[i]<<" ";
g<<"\n";
}
void back()
{
k=1;
init (k,st);
while (k>0)
{
do
{
succesor(k,st,as);
if (as) valid(k,st,ev);
}while(as&&!ev);
if (as) {if (solutie(k)) tipar (k);
else {k++;init(k,st);}}
else k--;
}
}
int main()
{
f>>n>>y;
back();
g.close();
return 0;
}