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