Submission #701027

#TimeUsernameProblemLanguageResultExecution timeMemory
701027RahalArt Exhibition (JOI18_art)C++17
0 / 100
2 ms4240 KiB
#include <bits/stdc++.h>
#define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define int long long
using namespace std;
///Constants
//int mod = 1000000007;
/*void setIO(string s)
{
    freopen((s + ".in").c_str(), "r", stdin);
    freopen((s + ".out").c_str(), "w", stdout);
}*/
int dp[500010];
signed main()
{
    IOS;
    memset(dp, -1, sizeof(dp));
    int n, a, b;
    cin >> n;
    vector<pair<int, int>>v;
    vector<int>pre;
    v.push_back({0, 0});
    for(int i = 0 ; i < n ; ++i){
      cin >> a >> b;
      v.push_back({a, b});
    }
    sort(v.begin(), v.end());
    a = 0;
    for(int i = 0 ; i <= n ; ++i){
      a+=v[i].second;
      pre.push_back(a);
    }
   // cout << "................\n";
  //  for(int i = 0 ; i <= n ; ++i){
  //  cout << v[i].first << " " <<pre[i] << "\n";
  //  }
        //cout << "................\n";
    int mx = -1;
    for(int i = 0 ; i < n ; ++i){
      for(int j = i+1 ; j <= n ; ++j){
            int lol = (pre[j]-pre[i])-(v[j].first-v[i+1].first);
         mx = max(mx, lol);
         if(dp[j]<lol)
         dp[j] = mx;
         else
            break;
         //cout << i << " " << j << " " << lol << " " << mx << "\n";
      }
    }
    cout << mx ;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...