Advertisement
nikunjsoni

1383

Jun 5th, 2021
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int maxPerformance(int n, vector<int>& speed, vector<int>& efficiency, int k) {
  4.         long long int MOD = int(1e9)+7;
  5.         vector<pair<int,int>> eng;
  6.         for(int i=0; i<speed.size(); i++)
  7.             eng.push_back({efficiency[i], speed[i]});
  8.         sort(eng.rbegin(), eng.rend());
  9.        
  10.         priority_queue<int, vector<int>, greater<int>> speeds;
  11.         long long int sumSpeed = 0, ans=0;
  12.         for(auto &[e, s]:eng){
  13.             sumSpeed += s;
  14.             speeds.push(s);
  15.             if(speeds.size() > k){
  16.                 sumSpeed -= speeds.top();
  17.                 speeds.pop();
  18.             }
  19.             ans = max(ans, e*sumSpeed);
  20.         }
  21.         return ans%MOD;
  22.     }
  23. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement