374
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