Cod sursa(job #1602414)

Utilizator robert.stefanRobert Stefan robert.stefan Data 16 februarie 2016 19:30:16
Problema Combinari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.84 kb
#include <stdio.h>
#include <stdlib.h>

#define IN "combinari.in"
#define OUT "combinari.out"
#define NMAX 18

int n, m;
int perm [NMAX];

inline void print (void){
    int k;

    for(k = 0; k < m; ++k)
        printf ("%d ", perm[k]);
    printf ("\n");
}

void bkt (int lev){
    if (lev == m)
        print();
    else{
        int k;

        if (lev)
            for (k = perm [lev - 1] + 1; k <= n; ++ k){
                perm [lev] = k;
                bkt (lev+  1);
            }
        else
            for (k = 1; k <= n; ++ k){
                    perm [lev] = k;
                bkt (lev + 1);
            }
    }
}

int main(void){
    freopen (IN, "r", stdin);
    freopen (OUT, "w", stdout);

    scanf ("%d%d", &n, &m);
    bkt (0);

    fclose (stdin);
    fclose (stdout);
    return 0;
}