Pagini recente » Cod sursa (job #773739) | Cod sursa (job #3267951) | Cod sursa (job #1530726) | Cod sursa (job #1106387) | Cod sursa (job #3143209)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("submultimi.in");
ofstream fout("submultimi.out");
int n;
int subset[20], len;
void backtrack(int nr) {
// am terminat de generat o submultime
if (nr == n + 1) {
if (len > 0) {
for (int i = 1; i <= len; i++) {
fout << subset[i] << " ";
}
fout << "\n";
}
return;
}
// Caz 1: NU il iau pe nr in submultimile pe care le generez next
backtrack(nr + 1);
// Caz 2: il iau pe nr in submultimile pe care le generez next
subset[++len] = nr;
backtrack(nr + 1);
--len; // undo
}
int main() {
fin >> n;
backtrack(1);
return 0;
}