Online C++ Compiler

#include <bits/stdc++.h> using namespace std; bool compactor(const pair<int, int>& a,const pair<int, int>& b) { return (a.second < b.second); } int get_maximum_cost(vector<pair<int, int> > &A, int K){ int res = 0, sum = 0; int N = A.size(); set<pair<int, int>> my_set; sort(A.begin(), A.end(), compactor); for (int i = N - 1; i >= 0; --i) { my_set.insert(make_pair(A[i].first, i)); sum += A[i].first; while (my_set.size() > K) { auto it = my_set.begin(); sum -= it->first; my_set.erase(it); } res = max(res, sum * A[i].second); } return res; } int main() { vector<pair<int, int> > arr = {{ 15, 5}, { 65, 25}, { 35, 20}, { 20, 5}, { 35, 20}, { 15, 18}, { 3, 8 }, {12, 17}}; int K = 4; cout << get_maximum_cost(arr, K); }