This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int n;
cin >> n;
map<int,int> mp;
for (int i = 0; i<n; i++){
int a,b;
cin >> a >> b;
mp[a] += b;
}
vector<pair<int,int>> vec;
for (auto u : mp){
vec.push_back(u);
}
sort(vec.begin(),vec.end());
int sz = vec.size();
int pf[sz+1];
pf[0] = 0;
multiset<int> ms;
for (int i = 1; i<=sz; i++){
pf[i] = pf[i-1] + vec[i-1].second;
ms.insert(pf[i]-vec[i-1].first);
}
//set of pf[i] - vec[i-1].first
//get max of that
int bst = 0;
for (int i = 1; i<=sz; i++){
//start from i
int cr = vec[i-1].first - pf[i-1];
auto it = ms.rbegin();
int val = *it;
bst = max(bst, cr + val);
ms.erase(ms.find(pf[i]-vec[i-1].first));
}
cout << bst;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |