Pagini recente » Cod sursa (job #2507384) | Cod sursa (job #2347441) | Cod sursa (job #1505923) | Cod sursa (job #1756955) | Cod sursa (job #1996666)
#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);
}
}