Pagini recente » Cod sursa (job #2517278) | Cod sursa (job #2173168) | Cod sursa (job #1203205) | Cod sursa (job #2863242) | Cod sursa (job #266808)
Cod sursa(job #266808)
#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;
}