Cod sursa(job #521164)

Utilizator cprodescuProdescu Corneliu-Claudiu cprodescu Data 11 ianuarie 2011 15:54:04
Problema Combinari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.9 kb
#include <stdio.h>
#include <stdlib.h>

int n, k;
int* to_print;
int max;
int len;

void read_data()
{
    scanf("%d", &n);
    scanf("%d", &k);
}

void print_one()
{
    int i;
    if (len == k)
    {
        for (i = 0; i < k; ++i)
            printf("%d ", to_print[i]);
        printf("\n");
    }
    else
    {
        for (i = max; i <= n-k+len; ++i)
        {
                to_print[len] = i+1;
                max = i+1;
                len++;
                print_one();
                len--;
                if (len == 0)
                    max = 0;
                else
                    max = to_print[len-1];
        }
    }
}

void print_data()
{
    to_print = malloc(k*sizeof(int));
    len = 0;
    max = 0;
    print_one();
    free(to_print);
}


int main()
{
    freopen("combinari.in", "r", stdin);
    freopen("combinari.out", "w", stdout);

    read_data();
    print_data();
    return 0;
}