Cod sursa(job #858018)

Utilizator asstasticAsstastic asstastic Data 18 ianuarie 2013 14:41:41
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda ichb-locala-2013-10 Marime 0.76 kb
#include<iostream.h>

int n, st[100], v[100], bun, l, u;


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

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

int valid(int k){
	int i, j;
	bun=1;
	for(i=1; i<=k; i++)
		for(j=i+1; j<=k; j++)
			if(v[st[i]]!=v[st[j]]) bun++;
	for(i=1; i<k; i++){
		if(st[i]>=st[k]) return 0;
		if(st[i+1]!=st[i]+1) return 0;
	}
	return 1;
}

int solutie(int k){
	return (k<=n)&&(bun>=l);
}

void tipar(int k){
	int i;
	for(i=1; i<=k; i++) cout<<v[st[i]]<<' ';
	cout<<endl;
}


void bk(int k){
	init(k);
	while(succesor(k))
		if(valid(k)){
			if(solutie(k))
				tipar(k);
				bk(k+1);
		}
}

int main(){
	int i;
	cin>>n>>l>>u;
	for(i=1; i<=n; i++) cin>>v[i];
	bk(1);
	return 0;
	
}