Pagini recente » Monitorul de evaluare | Profil DianaAngheluta06 | Istoria paginii utilizator/irinaaaaaaaaaaaaaaa | Monitorul de evaluare | Cod sursa (job #1569147)
#include <stdio.h>
#include <stdlib.h>
void printVector(int *x, int size, FILE* out)
{
int i;
for (i = 0; i < size; ++i)
{
fprintf(out, "%d ", x[i]);
}
fprintf(out, "\n");
}
void nck_aux(char n, int k, int start, FILE* out, int index, int* x)
{
int i = start;
if(index == k-1)
{
while(i <= n)
{
x[index] = i;
printVector(x, k, out);
++i;
}
return;
} else
{
while (i <= n-k+1 + index)
{
x[index] = i;
nck_aux(n, k, i+1, out, index+1, x);
++i;
}
}
}
void nck(int n, int k, FILE* out)
{
int* x = malloc(k*sizeof(int));
nck_aux(n, k, 1, out, 0, x);
free(x);
}
int main()
{
FILE *in = fopen("combinari.in", "rt");
if(!in) return 1;
FILE *out = fopen("combinari.out", "wt");
int n,k;
fscanf(in, "%d%d", &n, &k);
nck(n, k, out);
fclose(in);
fclose(out);
return 0;
}