제출 #37395

#제출 시각아이디문제언어결과실행 시간메모리
37395adletDivide and conquer (IZhO14_divide)C++14
0 / 100
186 ms10956 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e5 + 5; int n, l, x[N], g[N], e[N]; ll de[N], dg[N], ans; set < pair < ll, int > > st; int main() { // freopen("divide.in", "r", stdin); // freopen("divide.out", "w", stdout); cin >> n; for (int i = 1; i <= n + 1; ++i) { if (i != n + 1) { cin >> x[i] >> g[i] >> e[i]; dg[i] += dg[i - 1] + g[i]; de[i] += de[i - 1] + e[i]; } ans = max(ans, 1ll * g[i]); if (i > 1) { int l = st.begin()->second; if (x[i] - x[l] <= de[i] - de[l - 1] && dg[i] - dg[l - 1] > ans) { ans = dg[i] - dg[l - 1]; } } st.insert({dg[i], i}); } // for (int l = 1; l <= n; ++l) { // for (int r = l; r <= n; ++r) { // if (x[r] - x[l] <= de[r] - de[l - 1] && dg[r] - dg[l - 1] > ans) { // ans = dg[r] - dg[l - 1]; // } // } // } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...