Cod sursa(job #3155196)

Utilizator PetraPetra Hedesiu Petra Data 7 octombrie 2023 16:50:34
Problema Submultimi Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.5 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

int n;
vector<int> v;

void back()
{
    if (v.size()==n)
    {
        for (int i = 0; i < v.size(); i++)
            fout << v[i] << " ";
        fout << "\n";
        return;
    }
    for (int i = 0; i < v.size(); i++)
        fout << v[i] << " ";
    if (v.size())
        fout << "\n";
    for (int i = 1; i <= n; i++)
    {
        int ok = 1;
        for (int j = 0; j < v.size(); j++)
        {
            if (i <= v[j])
            {
                ok = 0;
                break;
            }
        }
        if (ok == 0) continue;

        v.push_back(i);
        back();
        v.pop_back();
    }
}

int main()
{
    fin >> n;
    back();
    return 0;
}


//#include <iostream>
//#include <fstream>
//#include <vector>
//
//using namespace std;
//
//ifstream fin ("submultimi.in");
//ofstream fout ("submultimi.out");
//
//int n;
//vector<int> v;
//void back(int k)
//{
//    if (v.size()==k)
//    {
//        for (int i = 0; i < v.size(); i++)
//            fout << v[i] << " ";
//        fout << "\n";
//    }
//    for (int i = (v.size()==0 ? 1 : v[v.size()-1] + 1); i <= n; i++)
//    {
//        v.push_back(i);
//        back(k);
//        v.pop_back();
//    }
//}
//
//int main()
//{
//    fin >> n;
//    for (int i = 1; i <= n; i++)
//        back(i);
//    return 0;
//}