Cod sursa(job #990951)

Utilizator yololy97Olaru Bogdan-Ioan yololy97 Data 29 august 2013 12:50:52
Problema Submultimi Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <cstdio>

int x[20], n;

// genereaza cu back toate sirurile binare
//adica sa generez sirurile binare? daca n = 3 trebuie sa generezi
// 000
// 001ok

void afis() {
    // afiseaza submultimea, x[i] = 1 => afisezi i
    // vezi sa nu afisezi si multimea vida
    int i;
    for(i = 1;i <= n; ++i)
        if(x[i])printf("%d ",i);
    printf("\n");
}
void back(int k){
    if(k == n + 1)
        afis();
    else {
        // ce valori poti pune pe x[k] ?
        // 0 1

        for (int i = 0; i <= 1; ++i)
            x[k] = i,
            back(k + 1);
        // sau poti pune x[k] = 0; back(k + 1); x[k] = 1; back(k + 1);
        //prefer varianta mai scurta :D
        // nu cred ca e vreuna mai scurta...
        //ok

    }
}

int main(){
    freopen("submultimi.in","r",stdin);
    freopen("submultimi.out","w",stdout);
    scanf("%d ",&n);
    back(1);
}