IPO LeetCode solution in C++

1
class Solution {
2
public:
3
int findMaximizedCapital(int k, int w, vector<int> &profits, vector<int> &capital) {
4
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pqsg;
5
priority_queue<pair<int, int>> pqgs;
6
int n = capital.size();
7
for (int i = 0; i < n; i++) {
8
// int val = profit[i]-capital[i];
9
if (capital[i] <= w) {
10
pqgs.push({profits[i], capital[i]});
11
} else if (capital[i] > w) {
12
pqsg.push({capital[i], profits[i]});
13
}
14
}
15
while (k-- && !pqgs.empty()) {
16
pair<int, int> tmp = pqgs.top();
17
w += tmp.first;
18
pqgs.pop();
19
while (!pqsg.empty() && pqsg.top().first <= w) {
20
pqgs.push({pqsg.top().second, pqsg.top().first});
21
pqsg.pop();
22
}
23
}
24
return w;
25
}
26
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0