Cod sursa(job #2444418)

Utilizator Ioana_CioboteaCiobotea Ioana Ioana_Ciobotea Data 31 iulie 2019 15:23:27
Problema Submultimi Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>

using namespace std;

int n, x[40], nrsol = 0;

void afis(int k)
{
    nrsol++;
    cout << "{ ";
    for(int i = 1; i <= k; i++)
        cout << x[i] << ' ';
    cout << "}\n";
}

/**
void backt(int k)
{
    if(k <= n) ///mai avem elemente
        for(int i = x[k - 1] + 1; i <= n; i++) /// (*)
        {
            x[k] = i;
            afis(k);
            backt(k + 1);
        }
}
*/

void backt()
{
    int k = 1;
    x[1] = 0;
    while(k > 0)
        if(x[k] < n)
        {
            x[k]++;
            afis(k);
            k++;
            x[k] = x[k - 1];
        }
        else
            k--;
}

int main()
{
    cin >> n;
    //
    x[0] = 0;
    afis(0);
    backt();
    cout << "S-au generat " << nrsol << " solutii." << endl;
    return 0;
}