#include <bits/stdc++.h>
#define pii pair <long long, long long>
#define fi first
#define se second
using namespace std;
using ll = long long;
const ll N = 500005, inf = 1e16;
int n;
pii a[N];
ll pfs[N], pre[N], suf[N];
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i].fi >> a[i].se;
	}
	sort(a + 1, a + n + 1); // sort theo size
	for (int i = 1; i <= n; i++) {
		pfs[i] = pfs[i - 1] + a[i].se;
		pre[i] = pfs[i] - a[i].fi; // S = [1, i] va max = i
//		cout << pfs[i] << ' ' << pre[i] << '\n';
	}
	suf[n + 1] = -inf;
	for (int i = n; i >= 1; i--) {
//		cout << suf[i + 1] << '\n';
		suf[i] = max(suf[i + 1], pre[i]);
//		cout << suf[i] << ' ';
	}
	ll ans = -inf;
	for (int i = 1; i <= n; i++) { // co dinh con min => max(pre)
		ans = max(ans, suf[i] + a[i].fi - pfs[i - 1]);
	}
	cout << ans;
	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... |