Cod sursa(job #1996666)

Utilizator BogdanisarBurcea Bogdan Madalin Bogdanisar Data 2 iulie 2017 12:34:12
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream in("submultimi.in");
ofstream out("submultimi.out");
const int NMax = 16 + 5;

int N;
int v[NMax];
// v - vector unde se genereaza solutiile

void backT(int,int);
// backT(x,K) genereaza toate submultimile de K elemente din cele N
// (numarul lor = combinari de N luate cate K)

int main() {
    in>>N;

    // genereaza toate submultimile de i elemente din N (i = 1,N)
    // care inseamna toate submultimile fara multimea vida
    for (int i=1;i <= N;++i) {
        backT(1,i);
    }

    in.close();
    out.close();
    return 0;
}

void backT(int idx,int K) {
    if (idx == K+1) {
        for (int i=1;i <= K;++i) {
            out<<v[i]<<' ';
        }
        out<<'\n';

        return;
    }

    for (int k = v[idx-1] + 1;k <= N;++k) {

        v[idx] = k;
        backT(idx+1,K);
    }
}