#include <iostream> #include <cassert> #include <cstdio> #include "message.h" #include "poszukiwania.h" using namespace std; int main() { long long S = SignalLength(), M = SeqLength(), ilosc_p = 0LL; long long d = M - S; long long p = (MyNodeId() * d) / NumberOfNodes(); long long koniec = ((MyNodeId() + 1) * d) / NumberOfNodes(); for (long long i = p + 1; p < koniec && i < S; i++, p++) { if (SignalAt(i) == SeqAt(p + i)) ilosc_p++; } if (MyNodeId() == 0) { for (int i = 0; i < NumberOfNodes(); i++) { int sender = Receive(-1); long long p_sender_count = GetLL(sender); ilosc_p += p_sender_count; } cout << ilosc_p << endl; } else { PutLL(0, ilosc_p); Send(0); } 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 | #include <iostream> #include <cassert> #include <cstdio> #include "message.h" #include "poszukiwania.h" using namespace std; int main() { long long S = SignalLength(), M = SeqLength(), ilosc_p = 0LL; long long d = M - S; long long p = (MyNodeId() * d) / NumberOfNodes(); long long koniec = ((MyNodeId() + 1) * d) / NumberOfNodes(); for (long long i = p + 1; p < koniec && i < S; i++, p++) { if (SignalAt(i) == SeqAt(p + i)) ilosc_p++; } if (MyNodeId() == 0) { for (int i = 0; i < NumberOfNodes(); i++) { int sender = Receive(-1); long long p_sender_count = GetLL(sender); ilosc_p += p_sender_count; } cout << ilosc_p << endl; } else { PutLL(0, ilosc_p); Send(0); } return 0; } |