// Problem: I - Знате
// Contest: Virtual Judge - 2024-03-11
// URL: https://vjudge.net/contest/700556#problem/I
// 
// By Muaath Alqarni
// Blog: https://muaath.dev/blog
#include <bits/stdc++.h>
#define ll long long
#define pii pair<ll, ll>
using namespace std;
const int N = 2e5+1;
const ll INF = 1e18;
int n;
array<ll, 3> a[N];
ll pref[N], prefg[N];
ll prefmn[N];
int main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin >> n;
	for (int i = 1; i <= n; cin >> a[i][0] >> a[i][1] >> a[i][2], i++);
	sort(a+1, a+n+1);
	a[0][0] = a[1][0];
	a[n+1][0] = a[n][0];
	vector<pii> v;
	v.push_back({0, 0});
	for (int i = 1; i <= n; i++) {
		pref[i] = pref[i-1] - (a[i][0] - a[i-1][0]) + a[i][2];
		prefg[i] = prefg[i-1] + a[i][1];
		v.push_back({pref[i] - (a[i+1][0] - a[i][0]), prefg[i]});
	}
	sort(v.begin(), v.end());
	for (int i = 0; i <= n; i++) {
		prefmn[i] = min(i ? prefmn[i-1] : INF, v[i].second);
	}
	ll sol = 0;
	for (int r = 1; r <= n; r++) {
		int idx = upper_bound(v.begin(), v.end(), pii{pref[r], INF})-v.begin()-1;
		ll ans = prefg[r] - prefmn[idx];
		sol = max(sol, ans);
	}
	cout << sol;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |