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
38
39
40
#include "maklib.h"
#include "message.h"
#include <algorithm>
#include <iostream>
 
using namespace std;
 
int main() {
        long long maxsum = ElementAt(1);
        long long sum = ElementAt(1);
        long long temp = 0;
 
        if (Size() != 1)
        {
                for (int i = 2; i <= Size(); i++)
                {
                        sum = sum + ElementAt(i);
 
                        if (ElementAt(i) > maxsum) maxsum = ElementAt(i);
                        if (sum > maxsum) maxsum = sum;

                        if (sum < 0) sum = 0;
                }
        }
        if(MyNodeId() > 0) 
        {
                PutLL(0, maxsum);
                Send(0);
        } 
        else 
        {
               for(int instancja = 1; instancja<NumberOfNodes(); ++instancja)                        {
                       Receive(instancja);
                       temp = GetLL(instancja);
                       if(temp>maxsum)maxsum=temp;
               }
               cout << maxsum;
        }
        return 0;
}