Cod sursa(job #266808)

Utilizator catalin93Catalin Ionescu catalin93 Data 26 februarie 2009 09:39:11
Problema Combinari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.97 kb
#include <stdio.h>

int v[100];
int n;
int k;
void init(int t)
{
	v[t]=0;	
}

int exista( int t)
{
	if  (v[t]<n) 
		return 1;
	return 0;
}

int cond( int t)
{
	int i;	
//printf("cond pt t = %d\n",t);
	for(i=0;i<t;i++)
		if(v[i]>=v[t]){		//verificam sa fie diferit si sa fie mai mare ca sa fie unica solutia
//printf("nu este pt v[t] = %d si v[i] = %d\n",v[t],v[i]);
			return 0;	}
	return 1;
}

int solutie( int t)
{
	if(t==k)
		return 1;
	return 0;
}

void afisare(int t)
{
	int i;
	for(i=0;i<t;i++)
		printf("%d ",v[i]);
	printf("\n");
}

void bkt(int t)
{
int i;
      if(solutie(t))
	  afisare(t);
      else
  
      for(i=1;i<=n;i++)	//for de la prima valoare valida la ultima valoare valida
  {
      v[t] = i;		//aici dami valorile posibile
      if(cond(t))	//verificare conditii pentru valoarea curenta
	  bkt(t+1);
    }

}



int main()
{
freopen("combinari.in","r",stdin);
freopen("combinari.out","w",stdout);

scanf("%d",&n);
scanf("%d",&k);

//k=3;
//n=6;
bkt(0);


return 0;
}