Pagini recente » Cod sursa (job #1085554) | Cod sursa (job #1762606) | Cod sursa (job #216212) | Cod sursa (job #2635125) | Cod sursa (job #590392)
Cod sursa(job #590392)
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
void print_set(uint8_t *a, uint8_t len)
{
uint8_t i;
for (i = 0; i < len; ++i)
printf("%d ", a[i]);
printf("\n");
}
int valid_set(uint8_t *a, uint8_t index)
{
uint8_t i;
for (i = 0; i < index; ++i)
if (a[i] >= a[index])
return 0;
return 1;
}
void sets(uint8_t *a, uint8_t len, uint8_t k, uint8_t index)
{
uint8_t 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()
{
uint8_t n = -1, k = 0, *a = NULL;
freopen("submultimi.in", "r", stdin);
freopen("submultimi.out", "w", stdout);
scanf("%c", &n);
n = n - '0';
a = (uint8_t*)calloc(n, sizeof(uint8_t));
for (k = 1; k <= n; k++)
{
memset(a, 0, n * sizeof(uint8_t));
sets(a, n, k, 0);
}
free(a);
return 0;
}