This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
struct S {
ll x, g, e;
};
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<S> a(n);
for(int i = 0; i < n; i++) {
cin >> a[i].x >> a[i].g >> a[i].e;
}
vector<S> pref(n+1, {0, 0, 0});
for(int i = 1; i <= n; i++) {
pref[i] = {a[i-1].x, pref[i-1].g+a[i-1].g, pref[i-1].e+a[i-1].e};
}
// ll ans = 0;
// for(int i = 1; i <= n; i++) {
// for(int j = i; j <= n; j++) {
//// cout << i << " " << j << " " << pref[j].x-pref[i-1].x << " " << pref[j].e-pref[i-1].e << " " << pref[j].g-pref[i-1].g << "\n";
// if (pref[j].x-pref[i].x <= pref[j].e-pref[i-1].e) {
// ans = max(ans, pref[j].g-pref[i-1].g);
// }
// }
// }
ll ans = 0;
int r = 0;
for(int i = 1; i <= n; i++) {
r = max(r, i);
while(r <= n && pref[r].x - pref[i].x <= pref[r].e - pref[i-1].e) {
ans = max(ans, pref[r].g-pref[i-1].g);
r++;
}
}
cout << ans << "\n";
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... |