Submission #1246917

#TimeUsernameProblemLanguageResultExecution timeMemory
1246917yoshiArt Exhibition (JOI18_art)C++20
0 / 100
0 ms320 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...