Pagini recente » Cod sursa (job #554840) | Cod sursa (job #729643) | Cod sursa (job #3350708) | Cod sursa (job #3142157) | Cod sursa (job #3346548)
#include <iostream>
#define FIN "submultimi.in"
#define FOUT "submultimi.out"
using namespace std;
int stack[100], level, n;
void init() {
stack[level] = -1;
}
int succ() {
if (stack[level] < 1) {
stack[level] += 1;
return 1;
}
return 0;
}
int valid() {
return 1;
}
void print() {
int flag = 0;
for (int i = 1; i <= n; i++) {
if (stack[i] == 1) {
cout << i << " ";
flag = 1;
}
}
if (flag == 1) cout << "\n";
}
int sol() {
return level == n;
}
void bkt() {
int s, v;
level = 1;
init();
while (level > 0) {
s = 1;
v = 0;
while (s && !v) {
s = succ();
if (s) v = valid();
}
if (s) {
if (sol()) {
print();
}
else {
level++;
init();
}
}
else {
level--;
}
}
}
int main() {
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
cin >> n;
bkt();
return 0;
}