제출 #1277820

#제출 시각아이디문제언어결과실행 시간메모리
1277820alahunovahmadDivide and conquer (IZhO14_divide)C++20
100 / 100
22 ms3560 KiB
#include<bits/stdc++.h> #define int long long using namespace std; signed main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; long long g[n], d[n], x[n], pmax[n]; for (int i = 0, _g, _d; i < n; i++) { cin >> x[i] >> _g >> _d; g[i] = (i ? g[i - 1] : 0) + _g; d[i] = (i ? d[i - 1] : 0) + _d; pmax[i] = x[i] - (i ? d[i - 1] : 0); if (i && pmax[i - 1] > pmax[i]) pmax[i] = pmax[i - 1]; } long long ans = 0; for (int r = 0; r < n; r++) { int left = 0, right = r; while (left < right) { int mid = (left + right) >> 1; if (x[r] - d[r] <= pmax[mid]) right = mid; else left = mid + 1; } int l = right; if (x[r] - d[r] <= pmax[l]) ans = max(ans, g[r] - (l ? g[l - 1] : 0)); } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...