👤

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
cu backtracking va rog


Răspuns :

#include<fstream>using namespace std;ifstream f("permutari1.in");ofstream g("permutari1.out");int n, v[9];void citire(){    f>>n;}void scrie(){    for(int i=1;i<=n;++i)        g<<v[i]<<' ';    g<<'\n';}int verificare(int k){    for(int i=1;i<k;++i)        if(v[i]==v[k])            return 0;    return 1;}void backtracking(int k){    if(k==n+1)        scrie();    else        for(int i=n;i>=1;--i)        {            v[k]=i;            if(verificare(k)==1)                backtracking(k+1);        }}int main(){    citire();    backtracking(1);    g.close();    return 0;}