#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; } |