Advertisement
Guest User

Untitled

a guest
May 30th, 2016
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. //solution by Wsl_F
  2. #include <bits/stdc++.h>
  3. #include "majority.h"
  4. #include <message.h>
  5.  
  6. using namespace std;
  7. #pragma comment(linker, "/STACK:1024000000,1024000000")
  8.  
  9.  
  10. typedef long long LL;
  11. typedef unsigned long long uLL;
  12. typedef double dbl;
  13. typedef vector<int> vi;
  14. typedef vector<LL> vL;
  15. typedef vector<string> vs;
  16. typedef pair<int,int> pii;
  17. typedef pair<LL,LL> pLL;
  18.  
  19. #define mp(x,y)  make_pair((x),(y))
  20. #define pb(x)  push_back(x)
  21. #define sqr(x) ((x)*(x))
  22.  
  23.  
  24. int main()
  25. {
  26.     int nodesNum= NumberOfNodes();
  27.     int myNode= MyNodeId();
  28.  
  29.     int n= GetN();
  30.     map<int, int> mp;
  31.     for (int i= myNode; i<n; i+= nodesNum)
  32.         mp[GetVote(i)]++;
  33.  
  34.     if (myNode)
  35.     {
  36.         vector<pii> v;
  37.         for (auto& kv : mp)
  38.             v.pb(kv);
  39.  
  40.         int sz= v.size();
  41.         PutInt(0, sz);
  42.         for (pii& kv : v)
  43.         {
  44.             PutInt(0, kv.first);
  45.             PutInt(0, kv.second);
  46.         }
  47.         Send(0);
  48.     }
  49.     else
  50.     {
  51.         for (int node= 1; node < nodesNum; node++)
  52.         {
  53.             Receive(node);
  54.             int m= GetInt(node);
  55.             for (int i= 0; i<m; i++)
  56.             {
  57.                 int k= GetInt(node);
  58.                 int v= GetInt(node);
  59.                 mp[k]+= v;
  60.             }
  61.         }
  62.  
  63.         int n2= n/2;
  64.         for (auto& kv : mp)
  65.             if (kv.second > n2)
  66.             {
  67.                 cout<<kv.first<<endl;
  68.                 return 0;
  69.             }
  70.  
  71.         cout<<"NO WINNER"<<endl;
  72.     }
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement