# PBinfo #124 – permutari1 – 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 invers lexicografică, permutările mulţimii {1,2,..,n}.

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

Date de ieşire
Fişierul de ieşire permutari1.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

Exemplu:
permutari1.in

3
permutari1.out

3 2 1 
3 1 2 
2 3 1 
2 1 3 
1 3 2 
1 2 3

## Cod sursă C++

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

## Resurse

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