Cod sursa(job #557618)

Utilizator tudorDudeTudor Vioreanu tudorDude Data 16 martie 2011 18:51:52
Problema Combinari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
# 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;
}