# PBinfo #4534 – SubmultimiInterval – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: Darius

## Enunț

Cerinţa
Se dă un interval [a,b], a și b numere naturale. Determinaţi, în ordine lexicografică, submulțimile mulțimii de numere naturale {a, a+1, a+2, ... b}.

Date de intrare
Fişierul de intrare submultimiinterval.in conţine pe prima linie numerele a şi b.

Date de ieşire
Fişierul de ieşire submultimiinterval.out va conţine pe fiecare linie câte o submulțime cerută, numerele din fiecare submulțime fiind separate prin câte un spaţiu.  Submulțimile vor fi afişate în ordine lexicografică.

Restricţii şi precizări

1 ≤ a < b  ≤ 1000000000
b-a≤20

Exemplu:
submultimiinterval.in

5 8
submultimiinterval.out

5 
5 6 
5 6 7 
5 6 7 8 
5 6 8 
5 7 
5 7 8 
5 8 
6 
6 7 
6 7 8 
6 8 
7 
7 8 
8

## Cod sursă C++

```cpp
#include <fstream>
using namespace std;
ifstream fin("submultimiinterval.in");
ofstream fout("submultimiinterval.out");
int n,a,b,X[21];
void afis(int n)
{
    for(int i=1;i<=n;i++)
        fout<<a+X[i]-1<<" ";
    fout<<"\n";
}
void back(int k)
{
    for(int i=X[k-1]+1;i<=n;i++)
    {
        X[k]=i;
        afis(k);
        back(k+1);
    }
}
int main()
{
    fin>>a>>b;
    n=b-a+1;
    back(1);
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/4534)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/4534/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-4534/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
