Răspuns:
Daca prin submultime te referi la numere nu neaparat consecutive atunci o solutie simpla ar fi:
Se sorteaza vectorul ( aici pot fi folosite multe functii, qsort, selectsort, bubblesort etc..)
Si apoi se iau cele mai mari m elemente ( ultimele m )
Sort(v) /// Se sorteaza vectorul
s = 0;
for ( i = n; i > n - m; i -- ) {
s += v[i]
}
print(s)
Nu e un program in pascal dar cred ca il poti intelege si tu
Pentru exemplul tau, sirul sortat este
-3, 1, 2, 5, 8, 12
iar cum m = 3, vom lua ultimele 3 elemente
Pentru o solutie cu un timp liniar se pot folosi statistici de ordine ceea ce duc la o solutie in O(n)
Explicație:
Sper ca te-am ajutat