Pagini recente » Cod sursa (job #1188194) | Cod sursa (job #2090471) | Cod sursa (job #2522073) | Cod sursa (job #1148496) | Cod sursa (job #3143204)
#include <fstream>
using namespace std;
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() {
ifstream fin("submultimi.in");
fin >> n;
backtrack(1);
return 0;
}