Cod sursa(job #1265232)

Utilizator space.foldingAdrian Soucup space.folding Data 16 noiembrie 2014 22:17:47
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <stack>
#include <utility>
#include <string>
#include <cstring>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <limits>
#include <sstream>
#include <deque>
#include <bitset>
#include <complex>
#include <functional>
#include <memory>
#include <numeric>

using namespace std;

#define x first
#define y second

int main () {
	ifstream fin("submultimi.in");
	ofstream fout("submultimi.out");

	function< vector<vector<int>>(int) > submultimi = [&](int n) {
		if(n == 0) return vector<vector<int>>(1);
		else {
			auto v = submultimi(n - 1);
			for(int i = 0, s = v.size(); i < s; i++) {
				auto sb = v[i];
				sb.push_back(n);
				v.push_back(sb);
			}
			return v;
		}
	};

	int n;

	fin >> n;
	auto r = submultimi(n);

	for(auto &sb : r) {
		for(auto el : sb) {
			fout << el << " ";
		}
		if(!sb.empty())
			fout << "\n";
	}

	return 0;
}