#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
#define int long long
pair<int,int> v[100001];
multiset<int> s;
signed main()
{
int n,i,aux,h,k,rasp=0,cnt=0;
cin>>n;
for(i=1;i<=n;i++){
cin>>v[i].first>>v[i].second;
}
sort(v,v+n);s.insert(0);
for(i=1;i<=n;i++){
h=v[i].first;k=v[i].second;
s.insert(h);
auto p=s.upper_bound(h-k);auto q=p;q--;
aux=k+*p+*q-h;
if(q!=s.begin()) s.erase(q);
s.insert(aux);s.erase(p);
}
auto it=s.end();
while(it!=s.begin()){
it--;
rasp+=cnt*(*it);
cnt++;
}
cout<<rasp;
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... |
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |