# PBinfo #1877 – kMax – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

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 și 1.000.000

Exemplu:
Intrare

5
5 -2 -3 4 1
1
Ieșire

11

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main(){
    int n ,v[1000], k, s;
    cin >> n;
    for(int i = 0 ; i < n ; i ++)
        cin >> v[i];
    cin >> k;
    for(int i = 0 ; i < n - 1 ; i ++)
        for(int j = i + 1 ; j < n ; j ++)
            if(v[i] > v[j])
            {
                int aux = v[i];
                v[i] = v[j];
                v[j] = aux;
            }
    for(int i = 0 ; i < k ; i ++)
        v[i] *= -1;
    s = 0;
    for(int i = 0 ; i < n ; i ++)
        s += v[i];
    cout << s << endl;
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/1877)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/1877/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-1877/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
