Cod sursa(job #217761)

Utilizator oprea_florinoprea florin oprea_florin Data 30 octombrie 2008 09:58:50
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<stdio.h>
int st[19],n,i,k,p;
void init(){
	st[k]=0;
}
int succesor(){
	if(st[k]<n-p+k){
		st[k]++;
		return 1;
	}
	return 0;
}
int valid(){
	if(k==1||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("combinari.in","r",stdin);
	freopen("combinari.out","w",stdout);
	scanf("%d%d",&n,&p);
	bkt();
	fclose(stdin);
	fclose(stdout);
	return 0;
}