Pagini recente » Cod sursa (job #1300709) | Cod sursa (job #44251) | Cod sursa (job #1150913) | Cod sursa (job #3267296) | Cod sursa (job #2773466)
#include <fstream>
using namespace std;
void subsets(int n, ofstream &out) {
int mask[n];
int i;
for (i = 0; i < n; i++)
mask[i] = -1;
i = 0;
while (i >= 0) {
bool valid = false;
while (!valid && mask[i] <= 1) {
mask[i]++;
valid = (mask[i] >= 0);
}
if (mask[i] <= 1) {
if (i == n - 1) {
bool empty = true;
for (int j = 0; j < n; j++) {
if (mask[j] > 0) {
out << j + 1 << ' ';
if (empty)
empty = false;
}
}
if (!empty)
out << '\n';
} else {
++i;
}
} else {
mask[i--] = -1;
}
}
}
int main(void) {
ifstream in("submultimi.in");
ofstream out("submultimi.out");
int n;
in >> n;
subsets(n, out);
in.close();
out.close();
return 0;
}