Cod sursa(job #2195051)

Utilizator codrutciulacuciulacu codrut cristian codrutciulacu Data 14 aprilie 2018 23:54:50
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <stdio.h>

int v[20], n, k;

void init(int p){
    if(p == 1)
        v[p] = 0;
    else
        v[p] = v[p - 1];
}

void succesor(int p, int &as){
    if(v[p] < n){
        v[p]++;
        as = 1;
    }else
        as = 0;
}

int sol(int p){
    if(p == k)
        return 1;
    else
        return 0;
}

void afisare(){
    for(int i = 1; i <= k; i++)
        printf("%d ", v[i]);
    printf("\n");
}

void bkt(){
    int p = 1, as;
    init(p);
    while(p > 0){
        succesor(p, as);
        if(as)
            if(sol(p))
                afisare();
            else{
                p++;
                init(p);
            }
        else
            p--;
    }
}

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

    scanf("%d%d", &n);
    for(k = 1; k <= n; k++)
        bkt();
    return 0;
}