#include "teatr.h" #include "message.h" #include <iostream> #include <vector> using namespace std; long long tab[6]; long long ans=0; long long other[6]; void send() { PutLL(0,ans); for(int i=1; i<=5; i++) PutLL(0,tab[i]); Send(0); } int main() { long long n = GetN();//5 long long nodeNr = NumberOfNodes(); //1 long long id = MyNodeId();//0 long long delta = (n+nodeNr-1)/nodeNr;//5 long long start = id*delta;//0 for(int i=start; i<min(n,delta+start); i++) { long long c = GetElement(i); for(int k=c+1; k<=5; k++) { ans += tab[k]; } tab[c]++; } if( id != 0 ) send(); else { //łączenie for(int j=1; j<nodeNr; j++) { Receive(j); ans += GetLL(j); for(int i=1; i<=5; i++) other[i] = GetLL(j); // for(int k=1; k<=5; k++) // cout<<other[k]<<" "; // cout<<endl; for(int i=1; i<5; i++) { long long f = 0; for(int k=i+1; k<=5; k++) f += tab[k]; ans += f*other[i]; } for(int k=1; k<=5; k++) tab[k] += other[k]; } cout<<ans; } 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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #include "teatr.h" #include "message.h" #include <iostream> #include <vector> using namespace std; long long tab[6]; long long ans=0; long long other[6]; void send() { PutLL(0,ans); for(int i=1; i<=5; i++) PutLL(0,tab[i]); Send(0); } int main() { long long n = GetN();//5 long long nodeNr = NumberOfNodes(); //1 long long id = MyNodeId();//0 long long delta = (n+nodeNr-1)/nodeNr;//5 long long start = id*delta;//0 for(int i=start; i<min(n,delta+start); i++) { long long c = GetElement(i); for(int k=c+1; k<=5; k++) { ans += tab[k]; } tab[c]++; } if( id != 0 ) send(); else { //łączenie for(int j=1; j<nodeNr; j++) { Receive(j); ans += GetLL(j); for(int i=1; i<=5; i++) other[i] = GetLL(j); // for(int k=1; k<=5; k++) // cout<<other[k]<<" "; // cout<<endl; for(int i=1; i<5; i++) { long long f = 0; for(int k=i+1; k<=5; k++) f += tab[k]; ans += f*other[i]; } for(int k=1; k<=5; k++) tab[k] += other[k]; } cout<<ans; } return 0; } |