Cod sursa(job #2660639)

Utilizator akumariaPatrascanu Andra-Maria akumaria Data 19 octombrie 2020 22:34:41
Problema Submultimi Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#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;
}