Submission #344593

#TimeUsernameProblemLanguageResultExecution timeMemory
344593bachaquerDivide and conquer (IZhO14_divide)C++14
17 / 100
1 ms364 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back using namespace std; ll n, x, g, d; struct lol { ll x; ll g; ll d; }; int main() { //freopen("stdin", "r", stdin); //freopen("stdout", "w", stdout); cin >> n; vector<lol> v; unsigned long long mx = 0; unsigned long long sum = 0; ll last = 0; for (int i = 0; i < n; i++) { cin >> x >> g >> d; v.pb({x, g, d}); if (i == 0 || v[i - 1].d + v[i].d < (v[i].x - v[i - 1].x)) { sum = 0; if (i != 0 && last + v[i].d >= (v[i].x - v[i - 1].x)) { sum += v[i - 1].g; last -= (v[i].x - v[i - 1].x); if (last < 0) { v[i].d += last; } } } else { v[i - 1].d -= (v[i].x - v[i - 1].x); if (v[i - 1].d < 0) { v[i].d += v[i - 1].d; v[i - 1].d = 0; } } last = d; sum += v[i].g; if (sum > mx) mx = sum; } cout << mx; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...