Submission #17898

#TimeUsernameProblemLanguageResultExecution timeMemory
17898chromeDivide and conquer (IZhO14_divide)C++98
48 / 100
1000 ms6416 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define foreach(it, S) for (__typeof (S.begin()) it = S.begin(); it != S.end(); it++)
#define all(x) x.begin(), x.end()
#define endl '\n'
#define _ ios_base :: sync_with_stdio(false); cin.tie(NULL);

#ifdef inputf
	#define fname ""
#else
	#define fname "" // <- Here
#endif

const double eps = 1e-9;
const int MaxN = int(2e5) + 256;
const int MOD = int(1e9) + 7;

template <typename T> inline T gcd(T a, T b) {
	return b ? gcd (b, a % b) : a;
}

inline bool Palindrome(const string& s) {
	return equal(s.begin(), s.end(), s.rbegin());
}

ll x[MaxN], g[MaxN], e[MaxN];

int main() { // _
	#ifdef lcl
		freopen(fname".in", "r", stdin);
		freopen(fname".out", "w", stdout);
	#endif

	int n; scanf("%d", &n);

	for (int i = 1; i <= n; ++i) {
		scanf("%lld%lld%lld", x + i, g + i, e + i);
		e[i] += e[i - 1];
		g[i] += g[i - 1];
	}

	ll res = 0;
	
	for (int i = 1; i <= n; ++i)
		for (int j = i; j <= n; ++j) {
			if (e[j] - e[i - 1] >= x[j] - x[i]) {
				res = max(res, g[j] - g[i - 1]);
			}
		}
	
	printf("%lld", res);
	
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...