Cod sursa(job #162076)

Utilizator stinkyStinky si Grasa stinky Data 19 martie 2008 13:09:50
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>
int n,sol[20],m;
int valid(int k){
	//verifica daca sol[k] e compatibil cu 
	//elementele care sunt deja in sol
	for(int i=1;i<k;++i)
		if(sol[i]>=sol[k])
			return 0;
	return 1;
}
void scrie(){
	for(int i=1;i<m;++i)
		printf("%d ",sol[i]);
	printf("%d\n",sol[m]);
}
void back(int k){//completeaza sol[k]
	if(k==m+1){
		//prelucrarea unei solutii
		scrie();
		return;
	}
	//aleg un element pentru sol[k]
	for(int i=1;i<=n;++i){
		sol[k]=i;
		if(valid(k))
			back(k+1);
	}
}
int main(){
	freopen("combinari.in","r",stdin);
	freopen("combinari.out","w",stdout);
	scanf("%d%d",&n,&m);
	back(1);
	return 0;
}