Pagini recente » Cod sursa (job #277888) | Cod sursa (job #679074) | Cod sursa (job #469275) | Cod sursa (job #1445094) | Cod sursa (job #154581)
Cod sursa(job #154581)
#include <stdio.h>
int N,K;
int dim,x[32];
int main()
{
int i;
freopen("combinari.in","r",stdin);
freopen("combinari.out","w",stdout);
scanf("%d%d",&N,&K);
dim = 1;
while ( dim != 0 )
{
++x[ dim ]; //aleg urmatoarea valoare pentru nivelul curent
if ( x[ dim ] == N + 1 ) //am epuizat toate posibilitatile pentru nivelul curent
{
--dim; //revin pe nivelul trecut
continue; //si sar peste operatiile urmatoare
}
if ( dim == K ) //sunt pe nivelul K
{
for ( i = 1; i <= K; ++i ) //si afisez solutia
printf("%d ",x[i]);
printf("\n");
}
else //altfel trec pe nivelul urmator
{
++dim;
x[ dim ] = x[ dim - 1 ]; //valoarea nivelului va incepe cu valoarea nivelului trecut
}
}
return 0;
}