# PBinfo #125 – permutari2 – Rezolvare C++

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

## Enunț

Cerinţa
Se citeşte un număr natural nenul n, apoi n numere naturale distincte. Să se afişeze, în ordine lexicografică, permutările mulţimii formate din cele n numere citite.

Date de intrare
Fişierul de intrare permutari2.in conţine pe prima linie numărul n, ia r pe a doua linie n numere naturale.

Date de ieşire
Fişierul de ieşire permutari2.out va conţine pe fiecare linie elementele unei permutări, separate prin câte un spaţiu.

Restricţii şi precizări

0 < n < 9
cele n numere de pe a doua linie a fişierului de intrare sunt mai mici decât 100

Exemplu:
permutari2.in

3
4 7 3
permutari2.out

3 4 7 
3 7 4 
4 3 7 
4 7 3 
7 3 4 
7 4 3

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
ifstream in("permutari2.in");
ofstream out("permutari2.out");
int n, x[10], nr[10];
bool f[10];
void afisare() {
    for (int i = 1; i <= n; i++)
        out << nr[x[i]] << " ";
    out << '\n';
}
void back(int k) {
    for (int i = 1; i <= n; i++)
        if (f[i] == false) {
            x[k] = i;
            f[i] = true;
            if (k == n) afisare();
            else back(k + 1);
            f[i] = false;
        }
}
int main() {
    in >> n;
    for (int i = 1; i <= n; i++)
        in >> nr[i];
    sort(nr + 1, nr + n + 1);
    back(1);
    return 0;
}
```

## Resurse

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