Pagini recente » Cod sursa (job #1438289) | Cod sursa (job #2041263) | Cod sursa (job #290127) | Cod sursa (job #2277599) | Cod sursa (job #2660639)
#include <cstdio>
#include <vector>
using namespace std;
int n;
vector<int> sol;
vector<int> used;
int main() {
freopen("submultimi.in", "r", stdin);
freopen("submultimi.out", "w", stdout);
scanf("%d", &n);
sol.resize(n+2, 0);
used.resize(n+2, 0);
int level = 0;
do {
if (level > 0 && level <=n && sol[level] <=n) {
for(int i=1; i<=level; ++i)
printf("%d ", sol[i]);
printf("\n");
}
while(used[level] >=n && level > 0) {
used[level] = 0;
--level;
}
if (used[level] < n && level <n) {
sol[level + 1] = used[level] + 1;
++used[level];
++level;
used[level] = used[level - 1];
}
} while (level);
return 0;
}