This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
//#pragma GCC optimize("O3")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,tune=native")
//#pragma GCC optimize ("unroll-loops")
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n;
cin >> n;
ll ans = 0;
vector<ll> G(n + 1), E(n + 1), x(n + 1);
vector<pair<ll, int>> kek(n);
for (int i = 1; i <= n; i++) {
ll g, d;
cin >> x[i] >> g >> d;
kek[i - 1] = { E[i - 1] - x[i], i - 1 };
E[i] = E[i - 1] + d;
G[i] = G[i - 1] + g;
}
sort(kek.begin(), kek.end());
vector<int> pref(n);
pref[0] = kek[0].second;
for (int i = 1; i < n; i++) {
pref[i] = min(pref[i - 1], kek[i].second);
}
for (int i = 1; i <= n; i++) {
int pos = upper_bound(kek.begin(), kek.end(), make_pair(E[i] - x[i], 0)) - kek.begin() - 1;
if (pos >= 0 && pos < n) {
ans = max(ans, G[i] - G[pref[pos]]);
}
}
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... |