제출 #169121

#제출 시각아이디문제언어결과실행 시간메모리
169121LinusTorvaldsFanDivide and conquer (IZhO14_divide)C++14
48 / 100
1066 ms2932 KiB
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

const int maxn = 100000 + 7;

typedef long long ll;

int x[maxn];
int g[maxn];
int d[maxn];
ll pr_d[maxn];
ll pr_g[maxn];


int main() {
	ios_base::sync_with_stdio(0); cin.tie(0);
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> x[i] >> g[i] >> d[i];
	}
	vector<pair<ll, ll>> q;
	for (int i = 0; i < n; i++) {
		pr_d[i] = (i>0?pr_d[i-1]:0) + d[i];
		pr_g[i] = (i > 0 ? pr_g[i - 1] : 0) + g[i];
	}
	ll gold = 0;
	for (int i = 0; i < n; i++) {
		q.emplace_back(((i>0?pr_d[i - 1]:0) - x[i]),(i>0?pr_g[i-1]:0));
		ll cur = pr_d[i] - x[i];
		for (auto t : q) {
			if (cur >= t.first) {
				gold = max(gold, pr_g[i] - t.second);
			}
		}
	}
	cout << gold;
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...