3
double mincostToHireWorkers(vector<int> &quality, vector<int> &wage, int k) {4
priority_queue<pair<double, int>, vector<pair<double, int>>, greater<pair<double, int>>> pqmn;5
priority_queue<int> pqmx;6
int n = quality.size();7
for (int i = 0; i < n; i++) {8
pqmn.push({(double)wage[i] / quality[i], quality[i]});10
double SumQuality = 0;12
while (!pqmn.empty()) {13
pair<double, int> p = pqmn.top();14
SumQuality += p.second;17
if (pqmx.size() > k) {18
SumQuality -= pqmx.top();21
if (pqmx.size() == k) {22
ans = min(ans, SumQuality * p.first);