# PBinfo #1286 – submultimi1 – Rezolvare C++

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

## Enunț

Cerinţa
Se citește un număr natural nenul n. Să se afişeze, în ordine lexicografică, toate submulțimile nevide ale mulţimii {1,2,..,n} pentru care diferența dintre oricare două elemente este mai mare decât 1.

Date de intrare
Fişierul de intrare submultimi1.in conţine pe prima linie numărul n.

Date de ieşire
Fişierul de ieşire submultimi1.out va conţine pe fiecare linie câte o  submulțime, elementele unei submulțimi fiind separate printr-un spațiu.

Restricţii şi precizări

1 ≤ n ≤ 10
elementele fiecărei submulțimi vor fi afișate în ordine crescătoare

Exemplu:
submultimi1.in

5
submultimi1.out

1 
1 3 
1 3 5 
1 4 
1 5 
2 
2 4 
2 5 
3 
3 5 
4 
5

## Cod sursă C++

```cpp
#include <fstream>
using namespace std;
ifstream in("submultimi1.in");
ofstream out("submultimi1.out");
int n, m, v[10];
void afisare(int k) {
    for (int i = 1; i <= k; ++i)
        out << v[i] << " ";
    out << endl;
}
void backtracking(int k) {
    for (int i = v[k - 1] + 2; i <= n; ++i) {
        v[k] = i;
        afisare(k);
        backtracking(k + 1);
    }
}
int main() {
    in >> n >> m;
    v[0] = -1;
    backtracking(1);
    return 0;
}
```

## Resurse

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