1877 - K Max

From Bitnami MediaWiki
Revision as of 13:08, 2 January 2024 by Andrada378 (talk | contribs)

Cerința

Se dă un șir cu n elemente, numere întregi, și un număr natural k ≤ n. Calculați cea mai mare sumă care poate fi obținută schimbând semnul a exact k elemente aflate pe poziții distincte din șirul dat.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului, apoi numărul k.

Date de iesire

Programul va afișa pe ecran numărul S, reprezentând suma maximă determinată.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • elementele șirului vor fi cuprinse între -1.000.000 și 1.000.000

Exemplu:

Intrare

5

5 -2 -3 4 1

1

Ieșire

11

Rezolvare

<syntaxhighlight lang="python"> def calculate_max_sum(n, v, k):

   v.sort()
   for i in range(k):
       v[i] *= -1
   s = sum(v)
   return s

if __name__ == "__main__":

   n = int(input())
   v = list(map(int, input().split()))
   k = int(input())
   result = calculate_max_sum(n, v, k)
   print(result)

</syntaxhighlight>