#include <iostream>
using namespace std;
//funkcja obliczająca maksymalny podciąg w danym ciągu
//funkcja pobiera wskaźnik na tablice i ilość elementów
long long int maximumSubArray(long long int *arr,int MAX)
{
long long int currentSum=0, maxSum=0;//zmienne pomocnicze:suma tymczasowa i suma maksymalna
for(int i=0;i<MAX;i++)
{
currentSum+=arr[i];//dodajemy kolejne elementy ciągu
if(currentSum > maxSum)// jeśli suma tymczasowa jest większa niż maksymalna
{
maxSum = currentSum;//przypisujemy sumie maksymalnej wartość sumy bieżącej
}else if(currentSum < 0)// jeśli jest mniejsza od 0
{
currentSum= 0;//zerujemy sumę tymczasową
}
}
return maxSum;//zwróć wartość maksymalną
}
int main()
{
int n;
cin >> n;//ilość koncertów
long long int tab[n];//tablica zysków
for(int i = 0 ; i < n ; i++)
{
cin >> tab[i];//wprowadzamy kolejne dane
}
cout << maximumSubArray(tab,n) << endl;//wyświetlamy wynik funkcji
return 0;
}