vivek_ragi

MAX_TEAM_PERFORMANCE

Jun 9th, 2021
548
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Solution {
  2. public:
  3.     int maxPerformance(int n, vector<int>& S, vector<int>& E, int k) {
  4.         vector<pair<long long ,long long>> T;
  5.         for(int i = 0; i < n; ++i)
  6.         {
  7.             T.push_back({E[i], S[i]});
  8.         }
  9.        
  10.         sort(T.rbegin(), T.rend());
  11.         long long ans = 0, sum = 0;
  12.         multiset<int> s;
  13.        
  14.         for(int i = 0; i < n; ++i)
  15.         {
  16.             //every elem i choose it to be min efficiency in my team
  17.             //at max i can have k people
  18.             int min_eff = T[i].first;
  19.             sum = sum + T[i].second;
  20.             s.insert(T[i].second);
  21.             ans = max(ans, sum*min_eff);
  22.            
  23.             if(s.size() > k - 1)
  24.             {
  25.                 sum-= (*s.begin());
  26.                 s.erase(s.begin());
  27.             }
  28.         }
  29.        
  30.         return ans % (long long)(1e9 + 7);
  31.     }
  32. };
RAW Paste Data