# PBinfo #297 – secvsummax – Rezolvare C++

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

## Enunț

Cerința
Se dă un  șir cu n elemente, numere întregi. Determinați secvența de elemente cu suma maximă.

Date de intrare
Fișierul de intrare secvsummax.in conține pe prima linie numărul n; urmează cele n elemente ale șirului, dispuse pe mai multe linii și separate prin spații.

Date de ieșire
Fișierul de ieșire secvsummax.out va conține pe prima linie numerele p și u, separate printr-un spațiu, reprezentând poziția de început și de sfârșit a secvenței determinate.

Restricții și precizări

1 ≤ n ≤ 100.000
elementele șirului vor avea cel mult 4 cifre și sunt numerotate de la 1 la n
dacă șirul conține mai multe secvențe de suma maximă, se va determina cea cu indicele de început cel mai mic, iar în caz de egalitate, cea mai scurtă
șirul va conține cel puțin un element pozitiv

Exemplu:
secvsummax.in

10
-4 1 -5 1 4 -2 2 3 -4 4
secvsummax.out

4 8
Explicație
Secvența 1 4 -2 2 3 are suma 8 și este suma maximă pentru toate secvențele care se pot forma.

## Cod sursă C++

```cpp
#include <fstream>
using namespace std;
ifstream in("secvsummax.in");
ofstream out("secvsummax.out");
int main() {
	int n, v[100001], suma_maxim, suma_temp, poz_temp = 1, inc = 1, sf = 1;
	in >> n;
    for (int i = 1; i <= n; ++i)
        in >> v[i];
    suma_maxim = v[1], suma_temp = v[1];
    for (int i = 2; i <= n; ++i) {
        if (suma_temp < 0) {
        	suma_temp = v[i];
        	poz_temp = i;
        } else suma_temp = suma_temp + v[i];
        if (suma_temp > suma_maxim) {
        	suma_maxim = suma_temp;
            inc = poz_temp;
            sf = i;
        }
    } out << inc << " " << sf;
    return 0;
}
```

## Resurse

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