325
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 cunelemente 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
Psunt 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);
}
Comentarii