Pagini recente » Cod sursa (job #1029652) | Cod sursa (job #666091) | Cod sursa (job #2180053) | Cod sursa (job #1939869) | Cod sursa (job #3143206)
#include <fstream>
using namespace std;
ifstream in ("submultimi.in");
ofstream out ("submultimi.out");
//backtracking, afiseaza toate submltimile unei multimi de forma {1, 2, ... n}
//n este elementul maxim
int n;
int subset[20], len;
void backtrack (int nr) {
if (nr == n + 1) {
if (len > 0) {
for (int i = 1; i <= len; i++) {
out << subset[i];
}
out << '\n';
}
return;
}
// Cazul 1) nu il iau pe nr in submultimile pe care le generez next
backtrack(nr + 1);
//Cazul 2) il iau pe nr in submultimile pe care le generez next
subset[++len]
}
int main () {
in >> n;
backtrack(1);
return 0;
}