Cod sursa(job #3350706)

Utilizator robert.stefanRobert Stefan robert.stefan Data 11 aprilie 2026 21:00:13
Problema Submultimi Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
// https://infoarena.ro/problema/submultimi

#include<fstream>

using namespace std;

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

int n;

// ales[i] = 0 daca NU includ pe i in solutie (submultime)
// ales[i] = 1 daca includ pe i in solutie
// fiind declarat global, initial este initializat cu 0
int ales[17];

void BT(int pos) {
	// pos - pozitia la care ne aflam in vectorul ales

	if(pos > n) {
		// am ajuns la capatul vectorului `ales`, asa ca acum afisez solutia
		for(int i = 1; i <= n; i++) {
			if(ales[i]) {
				fout << i << " ";
			}
		}

		fout << endl;

		return;
	}

	// dau pe rand lui ales[pos] valorile 0, respectiv 1
	ales[pos] = 0;
	BT(pos+1);

	ales[pos] = 1;
	BT(pos+1);
}

int main() {
	fin >> n;

	BT(1);

	fin.close();
	fout.close();

	return 0;
}