제출 #337825

#제출 시각아이디문제언어결과실행 시간메모리
337825Tosic금 캐기 (IZhO14_divide)C++14
17 / 100
1 ms364 KiB
#include <bits/stdc++.h>
#define maxn 100010
using namespace std;

int n, ans, p[maxn], eSum[maxn], goldSum[maxn], g[maxn], e[maxn], sufM;
vector<pair<int, 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...