1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <algorithm>
#include "maklib.h"
#include "message.h"

using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);
    if( MyNodeId() != 0 ) return 0;
    int n = Size();
    int k = ElementAt(1);
    long long int wynik = 0, suma = 0, suma2 = 0;
    for( int i = 1; i < n + 1; i ++ )
    {
        int d = ElementAt(i);
        if( d > 0 ) suma += d;
        else if( d + suma > 0 ) suma += d;
        else { wynik = max( wynik, suma); suma = 0; }
        wynik = max( wynik, suma );
        int k = max( k, d );

        int w = ElementAt( n + 1 - i );
        if( w > 0 ) suma2 += w;
        else if( w + suma2 > 0 ) suma2 += w;
        else { wynik = max( wynik, suma2 ); suma2 = 0; }
        wynik = max( wynik, suma2 );
    }
    if( k <= 0 )
    {
        if( MyNodeId() == 0 ) cout << k;
        return 0;
    }
    if( MyNodeId() == 0 ) cout << wynik;
    return 0;
}