Cod sursa(job #3200740)

Utilizator IoanMasterUngureanu Ioan IoanMaster Data 5 februarie 2024 18:42:17
Problema Submultimi Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.07 kb
#include <iostream>
#include <fstream>
#include <map>

using namespace std;

int n, v[21];

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

bool valid(int k)
{
    int i;

    for (i = 1; i < k; i++)
        if (v[k] == v[i])
            return false;

    return true;
}

bool succesor(int k)
{
    if (v[k] < n)
    {
        v[k]++;
        return true;
    }
    return false;
}

void afisare(int k)
{
    int i;

    for (i = 1; i <= k; i++)
        fout << v[i] << ' ';

    fout << '\n';
}

void bkt(int k)
{
    v[k] = 0;

    while (k > 0)
    {
        bool is_succesor = true;
        bool is_valid = false;

        while (is_succesor && !is_valid)
        {
            is_succesor = succesor(k);

            if (is_succesor)
                is_valid = valid(k);
        }

        if (!is_succesor)
            k--;

        else
        {
            afisare(k);

            k++;
            v[k] = v[k - 1];
        }
    }
}

int main()
{
    fin >> n;
    bkt(1);

    return 0;
}