Cod sursa(job #217765)

Utilizator cradle_of_pinkTrifu Alexandra cradle_of_pink Data 30 octombrie 2008 10:08:54
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<stdio.h>
int st[20],n,i,k,p;
void init(){
	st[k]=0;
}
int succesor(){
	if(st[k]<=n-k+p){
		st[k]++;
		return 1;
	}
	return 0;
}
int valid(){
	if(k==1)
		return 1;
	if(st[k]>st[k-1])
		return 1;
	return 0;
}
int solutie(){
	return(k==p);
}
void tipar(){
	for(i=1;i<=p;++i)
		printf("%d ",st[i]);
	printf("\n");
}
void bkt(){
	int as;
	k=1;
	init();
	while(k>0){
		do{}while((as=succesor()) && !valid());
		if(as)
			if(solutie()) tipar();
			else{ k++; init(); }
		else k--;
	}
}
int main(){
	freopen("date.in","r",stdin);
	freopen("date.out","w",stdout);
	scanf("%d%d",&n,&p);
	bkt();
	fclose(stdin);
	fclose(stdout);
	return 0;
}