Submission #1106749

#TimeUsernameProblemLanguageResultExecution timeMemory
1106749duckindogArt Exhibition (JOI18_art)C++17
100 / 100
118 ms16100 KiB
#include <bits/stdc++.h>

using namespace std;

#define int long long

const int N = 500'000 + 10;
int n;
pair<int, int> art[N];

int f[N][2];

int32_t main() { 
  cin.tie(0)->sync_with_stdio(0);

  cin >> n;
  for (int i = 1; i <= n; ++i) cin >> art[i].first >> art[i].second;

  sort(art + 1, art + n + 1);
  memset(f, -30, sizeof f);
  for (int i = 1; i <= n; ++i) { 
    const auto& [a, b] = art[i];
    f[i][0] = max(f[i - 1][0] + b, b + a);
    f[i][1] = max({f[i - 1][1], f[i - 1][0] + b - a, b});
  } 

  cout << f[n][1] << "\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...