leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
2542.cpp (703B)
0 class Solution { 1 typedef pair<long long, long long> elem; 2 3 public: 4 long long maxScore(vector<int> &nums1, vector<int> &nums2, int k) { 5 int n = nums1.size(); 6 vector<elem> arr(n); 7 for (int i = 0; i < n; ++i) 8 arr[i] = {nums2[i], nums1[i]}; 9 sort(rbegin(arr), rend(arr)); 10 11 long long sum = 0, res = 0; 12 priority_queue<int, vector<int>, greater<int>> pq; 13 for (auto &[a, b] : arr) { 14 pq.emplace(b); 15 sum += b; 16 if (pq.size() > k) { 17 sum -= pq.top(); 18 pq.pop(); 19 } 20 if (pq.size() == k) res = max(res, sum * a); 21 } 22 return res; 23 } 24 };