Submission #17905

#TimeUsernameProblemLanguageResultExecution timeMemory
17905ErzhannDivide and conquer (IZhO14_divide)C++98
17 / 100
37 ms9728 KiB
/* /\ /\ | ).|.( | | >-< | ========= It's AdilkhanKo miaaaaaau */ #include<bits/stdc++.h> #define ll long long #define pb push_back #define endl "\n" #define foreach(it, S) for(__typeof (S.begin()) it = S.begin(); it != S.end(); it++) #define mp make_pair #define f first #define s second #define name "" #define _ ios_base::sync_with_stdio(false);cin.tie(0); using namespace std; const int MaxN = int (2e5) + 256; const int INF = int(1e9); const int mod = (int)(1e9) + 7; long long n, a[MaxN], m, t, x[MaxN], g[MaxN], d[MaxN], D[MaxN]; bool used[MaxN]; int main () { _ /* #ifdef ONLINE_JUDGE freopen (name".in","r",stdin); freopen (name".out","w",stdout); #else freopen (".in","r",stdin); freopen (".out","w",stdout); #endif*/ cin >> n; for(int i = 1; i <= n; i++){ cin >> x[i] >> g[i] >> d[i]; D[i] = D[i - 1] + d[i]; } int l = 1, r = 1; ll ans = 0, cnt = 0; while(r <= n){ if((D[r] - D[l - 1] >= x[r] - x[l])){ if(!used[r]){ cnt += g[r]; used[r] = 1; } ans = max(cnt, ans); r++; }else{ if(used[l]){ used[l] = 0; cnt -= g[l]; } ans = max(ans, cnt); l++; } cnt = max(cnt, 0ll); if(l >= r) r = l; } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...