fbpx

Problema #2340 – sumaMinMax – Rezolvari PBInfo

de Mihai-Alexandru

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 unidimensional v și un număr natural n reprezentând numărul de elemente ale lui v
  • elementele lui v sunt indexate de la 0
  • sumaMinMax returnează un pointer la int, 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, unde v[i] reprezintă al i-lea element din v

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;
}
Comentarii

S-ar putea sa iti placa