1877 - K Max
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>