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;
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));
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 };