Cerința
Scrieți funcția sumaMinMax
care primește ca parametri un tablou unidimensional v
format din n
elemente și un număr natural n
. Funcția va returna un vector cu două elemente, primul element reprezentând cea mai mică sumă formată din exact n-1
elemente dintre cele n
ale lui v
, iar cel de-al doilea element reprezentând cea mai mare sumă formată din exact n-1
elemente dintre cele n
ale lui v
.
Restricții și precizări
sumaMinMax
primește doi parametri, în această ordine, un tablou unidimensionalv
și un număr naturaln
reprezentând numărul de elemente ale luiv
- elementele lui
v
sunt indexate de la0
sumaMinMax
returnează un pointer laint
, reprezentând un tablou alocat dinamic în cadrul funcției, tablou cu două elemente cu semnificațiile din cerință1 ≤ n ≤ 100
1 ≤ v[i] ≤ 50
, undev[i]
reprezintă ali
-lea element dinv
Exemplu
Intrare
5 1 2 3 4 5
Ieșire
10 14
Explicație
10
reprezintă primul element din vectorul returnat, iar 14
reprezintă al doilea element.
int* sumaMinMax(int a[], int n){ int *v = new int [2]; int sum = 0; int mini = 51; int maxi = 0; for(int i = 0; i < n; ++i){ sum += a[i]; if(a[i] > maxi) maxi = a[i]; if(a[i] < mini) mini = a[i]; } v[0] = sum - maxi; v[1] = sum - mini; return v; }