#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll i,j;
int main(){
ll n; cin>>n;
vector<ll> a(n) , b(n);
for(i=0; i<n; i++){
cin>>a[i]>>b[i];
}
ll mn=1e9, mx=1;
ll ans=0;
for( i=0; i<n-1; i++){
for(j=i+1; j<n; j++){
if((b[i] + b[j] - (max(a[i] , a[j]) - min(a[i], a[j]))) > ans) {
ans = b[i] + b[j] - (max(a[i] , a[j]) - min(a[i], a[j]));
mx=(a[i] > a[j] ? i : j);
mn=(a[i] > a[j] ? j : i);
}
}
}
// cout<<mn<<" "<<mx<<" "<<ans<<" ";
for( i=0; i<n; i++){
if(i!=mn and i!=mx){
ll k;
if(a[i] < a[mn]) k=a[mn]-a[i];
else if(a[mn]<=a[i] and a[mx]>=a[i]) k=0;
else k=a[i]-a[mx];
if(b[i]-k>=0){
ans+=b[i]-k;
if(a[i] < a[mn]) mn=i;
else if(a[mn]<=a[i] and a[mx]>=a[i]) continue;
else mx=i;
}
}
}
cout<<ans<<"\n";
}
# | 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... |