Pagini recente » Diferente pentru concursuri intre reviziile 53 si 182 | Diferente pentru concursuri intre reviziile 28 si 182 | Cod sursa (job #3316954) | Cod sursa (job #3346611) | Cod sursa (job #3355120)
#include<iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f ("submultimi.in");
ofstream g ("submultimi.out");
void back(vector<int>& v, vector<int>& result, vector<bool>& vizitat, int pos){
if (result.size() != 0 && result.size() <= v.size()) {
for (int i = 0; i < result.size(); i++)
g << result[i] <<" ";
g << '\n';
}
if (result.size() == v.size())
return;
for (int i = pos; i < v.size(); i++) {
if (vizitat[v[i]] == false) {
vizitat[v[i]] = true;
result.push_back(v[i]);
back(v, result, vizitat, i);
result.pop_back();
vizitat[v[i]] = false;
}
}
}
int main() {
int n, k;
f >> n;
vector<int> v;
vector<int> result;
for (int i = 1; i <= n ;i++)
v.push_back(i);
vector<bool> vizitat(n+1, false);
back(v, result, vizitat, 0);
return 0;
}