Submission #337827

#TimeUsernameProblemLanguageResultExecution timeMemory
337827Tosic금 캐기 (IZhO14_divide)C++14
100 / 100
40 ms9320 KiB
#include <bits/stdc++.h> #define maxn 100010 using namespace std; long long n, ans, p[maxn], eSum[maxn], goldSum[maxn], g[maxn], e[maxn], sufM; vector<pair<long long, int> > sufV; int main(){ ios_base::sync_with_stdio(0); cout.tie(0); cin.tie(0); cin >> n; for(int i = 1; i <= n; ++i){ cin >> p[i] >> g[i] >> e[i]; goldSum[i] = goldSum[i-1]+g[i]; eSum[i] = eSum[i-1] + e[i]; } sufM = -1e9; for(int i = n; i > 0; --i){ sufM = max(sufM, eSum[i]-p[i]); sufV.push_back(make_pair(sufM,i)); int tmp = (*(lower_bound(sufV.begin(), sufV.end(), make_pair(eSum[i-1]-p[i], 0)))).second; //cerr << tmp << '\n'; ans = max(ans, goldSum[tmp]-goldSum[i-1]); } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...