Cod sursa(job #217750)

Utilizator dReaMerAndrei Sofian dReaMer Data 30 octombrie 2008 09:46:02
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<iostream.h>
#include <math.h>

int st[100];
int n,m,k,ev,as;

void init (){
	st[k]=0;
}

int succesor (){
	if (st[k]<n-p+k){
		st[k]=st[k]+1; return 1;
	}
	else return 0;
}

int valid (){
	if(k==1 || st[k]>st[k-1])
		return 1;
	return 0;
}

int solutie(){
	return k==m;
}

void tipar (){
	int i;
	for (i=1;i<=m;i++) cout<<st[i]<<" ";
	cout<<endl;
}

void bt(){
	k=1;
	init();
	while (k>0){
		as=1;
		ev=0;
		while(as && !ev){
			as=succesor();
			if(as)
				ev=valid();
		}
		if(as)
			if (solutie()) tipar();
			 else {k++; init();}
        else k--;}
}

int main(){
	freopen("combinari.in","r",stdin);
	freopen("combinari.out","w",stdout); 
	cin>>n;
	cin>>m;
	bt();
	return 0;
}