Cod sursa(job #3200738)

Utilizator IoanMasterUngureanu Ioan IoanMaster Data 5 februarie 2024 18:40:32
Problema Submultimi Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <map>

using namespace std;

int n, v[11], f[11];

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++)
        cout << v[i] << ' ';

    cout << '\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()
{
    cin >> n;
    bkt(1);

    return 0;
}