Submission #39087

#TimeUsernameProblemLanguageResultExecution timeMemory
39087ScayreDivide and conquer (IZhO14_divide)C++14
48 / 100
1000 ms8036 KiB
//
// omae wa mou shindeiru.
//

#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,sse3,sse4,popcnt,abm,mmx")

#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <string>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <numeric>
#include <sstream>
#include <cassert>
#include <iomanip>
#include <iostream>
#include <algorithm>

#define ll long long
#define ull unsigned ll
#define ioi exit(0);

#define f first
#define s second

#define inf (int)1e9 + 7

#define NFS ios_base :: sync_with_stdio(0), cin.tie(0), cout.tie(0);

#define mp make_pair

#define lb(x) lower_bound(x)
#define ub(x) upper_bound(x)

#define pb push_back
#define ppb pop_back

#define endl "\n"

#define in(x) insert(x)

#define sz(x) (int)x.size()

#define all(x) x.begin(),x.end()

#define pw2(x) (1<<x) //2^x

#define sqr(x) ((x) * 1ll * (x))

using namespace std;

const int N = (int)5e5 + 7, MOD = (int)1e9 + 7;

ll cnt,ans,res,cnt1;

int n;

int x[N],g[N],y[N];

int main(){

	#ifdef IOI2019
		freopen ("in.txt", "r", stdin);
	#endif

	NFS

	cin >> n;

	for(int i=1;i<=n;i++){
		cin >> x[i] >> g[i] >> y[i];
	}

	for(int i=1;i<=n;i++){
		ans=0;
		ans+=g[i];
		cnt=y[i];
		cnt1=g[i];
		for(int j=i;j<n;j++){
			cnt=(y[j+1]+cnt)-(x[j+1]-x[j]);
			ans+=g[j+1];
			if(cnt>=0){
				cnt1=ans;
			}
		}
		res=max(res,cnt1);
	}

	cout << res << endl;

	#ifdef IOI2019
		cout << "\nTime Elapsed : " << clock () * 1.0 / CLOCKS_PER_SEC << endl;
	#endif

	ioi
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...