#include <stdio.h>
#include "maklib.h"
#include "message.h"
int main()
{
long long podsuma = 0, wynik = 0, odp;
int i, rozm = Size(), instancja = MyNodeId(), podzial;
podzial = rozm/2;
if (instancja == 0)
{
for (i=1;i<=podzial;++i)
{
podsuma = (podsuma>0? podsuma: 0) + ElementAt(i);
if (podsuma > wynik)
wynik = podsuma;
}
PutLL(1, podsuma);
PutLL(1, wynik);
Send(1);
}
else if (instancja == 1)
{
for (i=rozm;i>podzial;--i)
{
podsuma = (podsuma>0? podsuma: 0) + ElementAt(i);
if (podsuma > wynik)
wynik = podsuma;
}
Receive(0);
podsuma += GetLL(0);
if (podsuma > wynik)
wynik = podsuma;
odp = GetLL(0);
if (odp > wynik)
wynik = odp;
printf("%lld\n", wynik);
}
return 0;
}
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 41 42 43 44 45 46 | #include <stdio.h> #include "maklib.h" #include "message.h" int main() { long long podsuma = 0, wynik = 0, odp; int i, rozm = Size(), instancja = MyNodeId(), podzial; podzial = rozm/2; if (instancja == 0) { for (i=1;i<=podzial;++i) { podsuma = (podsuma>0? podsuma: 0) + ElementAt(i); if (podsuma > wynik) wynik = podsuma; } PutLL(1, podsuma); PutLL(1, wynik); Send(1); } else if (instancja == 1) { for (i=rozm;i>podzial;--i) { podsuma = (podsuma>0? podsuma: 0) + ElementAt(i); if (podsuma > wynik) wynik = podsuma; } Receive(0); podsuma += GetLL(0); if (podsuma > wynik) wynik = podsuma; odp = GetLL(0); if (odp > wynik) wynik = odp; printf("%lld\n", wynik); } return 0; } |
English