Submission #172669

#TimeUsernameProblemLanguageResultExecution timeMemory
172669tselmegkhDivide and conquer (IZhO14_divide)C++14
17 / 100
227 ms4336 KiB
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;

int x[N], g[N], d[N];
int main(){
	int n;
	cin >> n;
	for(int i = 1; i <= n; i++){
		cin >> x[i] >> g[i] >> d[i];		
	}
	int l = 0;
	long long curenergy = 0, curgold = 0, ans = 0;
	for(int i = 1; i <= n; i++){
		ans = max(ans, (long long)g[i]);
		if(curenergy + d[i] >= x[i] - x[l]){
			curenergy += d[i];
			curgold += g[i];
		}else{
			while(curenergy + d[i] < x[i] - x[l]){
				curenergy -= d[l];
				curgold -= g[l];
				l++;
			}
			curenergy += d[i];
			curgold += g[i];
		}
		ans = max(ans, curgold);
	}
	cout << ans << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...