Pagini recente » Cod sursa (job #918862) | Cod sursa (job #2420504) | Cod sursa (job #1972838) | Cod sursa (job #835795) | Cod sursa (job #478390)
Cod sursa(job #478390)
#include <stdio.h>
#include <stdlib.h>
void print(FILE *g, int *v, int k)
{
int i;
for (i = 0; i < k; i++)
fprintf(g, "%d ", v[i]);
fprintf(g, "\n");
}
int valid(int *v, int k, int x)
{
int i;
for (i = 0; i < x; i++)
if (v[i] >= v[x]) return 0;
return 1;
}
void back(int *v, int n, int k, FILE *g, int x)
{
int i;
if (x == k)
{
print(g, v, k);
return;
}
for (i = 1; i <= n; i++)
{
v[x] = i;
if (valid(v, k, x)) back(v, n, k, g, x + 1);
}
}
int main()
{
int n, k, *v;
FILE *f, *g;
f = fopen("combinari.in", "r");
g = fopen("combinari.out", "w");
fscanf(f, "%d", &n);
fscanf(f, "%d", &k);
v = (int *)malloc(sizeof(int) * k);
back(v, n, k, g, 0);
fclose(f);
fclose(g);
return 0;
}