== include(page="template/taskheader" task_id="permutari") ==
O permutare de ordinul $N$ (numar natural nenul) este o functie bijectiva definita pe multimea {1, 2, ..., N} cu valori in ea insasi. O permutare de ordinul $N$ are numarul de ordine $A$ daca aceasta se afla pe pozitia $A$ in sirul ordonat lexicografic al permutarilor de ordinul [$N$].
O permutare de ordinul N (numar natural nenul) este o functie bijectiva definita pe multimea {1, 2, ..., N} cu valori in ea insasi.
Avand la dispozitie [$N$], $K$ si un sir $A(1), A(2), ..., A(K)$ sortat crescator (reprezentand numerele de ordine ale unor permutari distincte de ordinul [$N$]), scrieti un program care afiseaza imaginile acestor permutari.
Avand la dispozitie $N$ si un sir format din maxim $5$ numere naturale nenule sortate crescator, reprezentand numerele de ordine a unor permutari distincte din sirul ordonat lexicografic al permutarilor de ordinul [$N$], scrieti un program care afiseaza imaginile acestor permutari.
In general, spunem ca sirul (x(1), x(2), ..., x(m)) este mai mic decat sirul (y(1), y(2), ..., y(n)) din punct de vedere lexicografic daca:
In general, spunem ca sirul (x(1), x(2), ..., x(m)) este mai mic decat sirul (y(1), y(2), ..., y(n)) din punct de vedere lexicografic daca
* exista k, $1 ≤ k ≤ min(m, n)$, astfel incat x(1) = y(1), x(2) = y(2), ..., x(k-1) = y(k-1) si x(k) < y(k)
exista k, $1 ≤ k ≤ min(m, n)$ , astfel incat x(1) = y(1), x(2) = y(2), ..., x(k-1) = y(k-1) si x(k) < y(k)
sau
* m < n si x(i) = y(i) pentru orice $1 ≤ i ≤ m$ (sirul x este un prefix al lui y).
m < n si x(i) = y(i) pentru orice $1 ≤ i ≤ m$ (sirul x este un prefix al lui y).
h2. Date de intrare
Fisierul de intrare $permutari.in$ va contine pe prima linie numerele naturale $N$ si [$K$], iar pe a doua linie valorile sirului $A(1), A(2), ..., A(K)$ separate prin cate un spatiu.
Fisierul de intrare $permutari.in$ va contine pe prima linie numarul natural [$N$], iar pe a doua linie maxim $5$ numere naturale, reprezentand numerele de ordine a maxim $5$ permutari distincte.
h2. Date de ieșire
Fisierul de ieșire $permutari.out$ va contine pe cate o linie, cele $K$ permutari de ordinul $N$ avand numerele de ordine cerute, in ordinea din fisierul de intrare. Numerele de pe fiecare linie a fisierului vor fi separate prin cate un spatiu.
Fisierul de ieșire $permutari.out$ va contine pe cate o linie, permutarile de ordinul N avand numerele de ordine cerute, in ordinea din fisierul de intrare. Numerele de pe fiecare linie a fisierului vor fi separate prin cate un spatiu.
h2. Restricții
* $1 ≤ N ≤ 9$
* $1 ≤ K ≤ 5$
* $1 ≤ A(i) ≤ N!$, unde $1 ≤ i ≤ K$
* $1 ≤ A ≤ N!$, unde A este numarul de ordine al uneia dintre permutarile cerute pentru afisare.
h2. Exemplu
table(example).
|_. permutari.in |_. permutari.out |
| 3 3
1 3 4
| 3
1 3 4
| 1 2 3
2 1 3
2 3 1
|
2 1 3
2 3 1
== include(page="template/taskfooter" task_id="permutari") ==