Submission #1279326

#TimeUsernameProblemLanguageResultExecution timeMemory
1279326IBoryDivide and conquer (IZhO14_divide)C++20
100 / 100
47 ms9804 KiB
#include <bits/stdc++.h> #define pii pair<ll, ll> typedef long long ll; using namespace std; const int MAX = 100007; ll X[MAX], G[MAX], D[MAX], PD[MAX]; int main() { ios::sync_with_stdio(0); cin.tie(0); int N; cin >> N; for (int i = 1; i <= N; ++i) { cin >> X[i] >> G[i] >> D[i]; G[i] += G[i - 1]; PD[i] = PD[i - 1] + D[i]; } for (int i = 1; i <= N; ++i) PD[i] = PD[i] - X[i]; ll ans = 0; set<pii> S; for (int i = N; i > 0; --i) { if (S.empty() || (*--S.end()).first < PD[i]) S.emplace(PD[i], G[i]); auto it = S.lower_bound({PD[i] - D[i], 0}); if (it != S.end()) ans = max(ans, (*it).second - G[i - 1]); } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...