Cod sursa(job #163922)

Utilizator xtremespeedzeal xtreme Data 23 martie 2008 12:12:51
Problema Combinari Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<iostream.h>
#include<fstream.h>


int n,k,st[20],as,ev,i,h,j,aux,ok;

void succesor()
	{
	if(st[k]<n)
			{st[k]++;as=1;}
		else
			as=0;
	}
void valid()
	{
	ev=1;
	for(i=1;i<=k-1;i++)
		if(st[k]==st[i])
			ev=0;
	}
int main()
	{
	fstream f("combinari.in",ios::in),g("combinari.out",ios::out);
	f>>n>>h;
	k=1;st[k]=0;
	while(k>0)
		{
		do
			{
			succesor();
			if(as)
				valid();
			if((!as)||((as)&&(ev)))
				break;
			}
		while(1<2);
		if(as==1)
			{
			if(k==h)
				{
				ok=1;
				for(i=1;i<=h-1;i++)
					if(st[i]>st[i+1])
						{
						ok=0;break;
						}
				if(ok)
					{
					for(i=1;i<=h;i++)
						g<<st[i]<<" ";
					g<<endl;
					}
				ok=1;
				}
			else
				{k++;st[k]=0;}
			}
		else
			k--;
		}
	f.close();g.close();
	}