#include <iostream>
#include <cstdio>
#include <vector>
#include <array>
#include <string>
#include <algorithm>
#include <numeric>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <queue>
#include <cmath>
#include <climits>
#include <iomanip>
#include <limits>
#include <tuple>
#include <stack>
#include <bitset>
#include <cstring>
#include <sstream>
#include <functional>
#include <random>
#define int long long
using namespace std;
void solve() {
int n;
cin >> n;
vector<pair<int, int>> a(n);
for (auto& e : a)
cin >> e.first >> e.second;
sort(a.begin(), a.end());
vector<int> pref(n, 0);
pref[0] = a[0].second;
for (int i = 1; i < n; ++i)
pref[i] = pref[i - 1] + a[i].second;
for (int i = 0; i < n; ++i)
pref[i] -= a[i].first;
vector<int> mx(n, -1e18);
mx[n - 1] = pref[n - 1];
for (int i = n - 2; i >= 0; --i)
mx[i] = max(mx[i + 1], pref[i]);
int ans = 0;
for (int i = 0; i < n - 1; ++i) {
int s = a[i].first - (i > 0 ? pref[i - 1] : 0) - (i > 0 ? a[i - 1].first : 0) + mx[i + 1];
ans = max(ans, s);
}
for (int i = 0; i < n; ++i)
ans = max(ans, a[i].second);
cout << ans << '\n';
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
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... |