Cod sursa(job #590391)

Utilizator ukiandreaAndreea Lucau ukiandrea Data 17 mai 2011 11:24:49
Problema Submultimi Scor 90
Compilator c Status done
Runda Arhiva educationala Marime 0.89 kb
#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;
}