Cerința
Scrieți definiția completă a subprogramului C++:
void next_perm(int n, int P[])
Subprogramul primește 2 parametri:
n
– prin care primește un număr naturalP
– prin care primește un tablou unidimensional cun
elemente ce reprezintă o permutare a mulțimii{1,2,...,n}
.
Subprogramul va returna tot în parametru P
următoarea permutare din punct de vedere lexicografic.
Restricții și precizări
2 ≤ n ≤ 100000
;- elementele tabloului unidimensional
P
sunt indexate de la1
; - pentru datele de intrare testate există întotdeauna permutare următoare;
- se recomandă evitarea folosirii unor funcții predefinite care realizează operația cerută.
Exemplu
Dacă pentru n=5
avem permutarea P={2,1,5,4,3}
subprogramul va returna: P={2,3,1,4,5}
.
Important
Soluția propusă va conține doar definiția subprogramului cerut. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.
#include <bits/stdc++.h> void next_perm(int n, int p[]) { next_permutation(p + 1 , p + n + 1); }