Cod sursa(job #3247316)

Utilizator DunareTanasescu Luca-Ioan Dunare Data 6 octombrie 2024 23:37:09
Problema Submultimi Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <algorithm>
#include <cstring>
#include <fstream>
using namespace std;
ifstream f("submultimi.in");
ofstream g("submultimi.out");
int  n, x[1000], nrsol;

void presol(int k)
{
    nrsol++;

    for(int i = 1; i <= k; i++)
        g << x[i] << ' ';
        g<<'\n';
}


void backt(int k)
{
    if(k <=n)
        for(int i = x[k - 1] + 1; i <= n; i ++)
        {
            x[k] = i;
            presol(k);
            backt(k + 1);
        }
}


void bt(int k) ///recursiv
{
    k=1;
    x[1] = 0;
    while(k > 0)
        if(x[k] < n)
        {
            x[k]++;
            presol(k);
            k++;
            x[k] = x[k - 1];
        }
        else k--;
}
int main()
{

    f>>n;
    ///for(m=1;m<=n;m++)backt();///iterativ

    ///Var rec
    ///x[0]=0

        bt(1);
   // cout<<"S-au generat "<< nrsol<<" solutii.\n";
   f.close();
   g.close();
    return 0;
}