261
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 ieșire
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
și1.000.000
Exemplu
Intrare
5 5 -2 -3 4 1 1
Ieșire
11
#include <bits/stdc++.h> using namespace std; int main() { int n , k , a[1002] , s = 0; cin >> n; for(int i = 0 ; i < n ; ++i) cin >> a[i]; cin >> k; sort(a , a + n); for(int i = 0 ; i < n ; ++i) { if(i < k) a[i] = a[i] * -1; s += a[i]; } cout << s; return 0; }
Comentarii