Cod sursa(job #2604867)

Utilizator lepoartcevPaltineanu Rares-Mihai lepoartcev Data 23 aprilie 2020 17:55:00
Problema Combinari Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <stdio.h>
#include <stdlib.h>

int n, k;
int vect[19];

int nextElem(int x) {

    if(vect[x] < n) {

        vect[x]++;
        return 1;

    } else
        return 0;

}

int valid(int x) {

    for(int i = 0; i < x; i++)
        if(vect[i] >= vect[x])
            return 0;

    return 1;

}

void combinari(int x, FILE* out) {

    if(x == k) {

        for(int i = 0; i < k; i++)
            fprintf(out, "%d ", vect[i]);

        fprintf(out, "\n");

    } else {

        vect[x] = 0;

        while(nextElem(x)) {
            if(valid(x))
                combinari(x + 1, out);

        }
    }
}

int main() {

    FILE* in = fopen("combinari.in", "r");
    FILE* out = fopen("combinari.out", "w");

    fscanf(in, "%d %d", &n, &k);

    int* array = (int*)malloc(sizeof(int) * k);

    combinari(0, out);
    return 0;
}