Pagini recente » Cod sursa (job #1163101) | Cod sursa (job #588592) | Cod sursa (job #728905) | Cod sursa (job #2861077) | Cod sursa (job #590391)
Cod sursa(job #590391)
#include <stdio.h>
#include <stdlib.h>
void print_set(int *a, int len)
{
int i;
for (i = 0; i < len; i++)
printf("%d ", a[i]);
printf("\n");
}
int valid_set(int *a, int index)
{
int i;
for (i = 0; i < index; i++)
if (a[i] >= a[index])
return 0;
return 1;
}
void sets(int *a, int len, int k, int index)
{
int i;
if (index == k)
print_set(a, k);
else
{
for (i = 1; i <= len; i++)
{
a[index] = i;
if (valid_set(a, index))
sets(a, len, k, index + 1);
}
}
}
int main()
{
int n = -1, k = 0, *a = NULL;
freopen("submultimi.in", "r", stdin);
freopen("submultimi.out", "w", stdout);
scanf("%d", &n);
for (k = 1; k <= n; k++)
{
a = (int*)calloc(k, sizeof(int));
sets(a, n, k, 0);
free(a);
}
return 0;
}