Submission #17935

#TimeUsernameProblemLanguageResultExecution timeMemory
17935ErzhannDivide and conquer (IZhO14_divide)C++98
48 / 100
99 ms11096 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], G[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]; G[i] = G[i - 1] + g[i]; } int l = 1, r = 1; ll ans = 0, cnt = 0; if(n <= 10000) for(int i = 1; i <= n; i++){ for(int j = 1; j <= i; j++){ if(x[i] - x[j] <= D[i] - D[j - 1]) ans = max(ans, G[i] - G[j - 1]); } } else while(r <= n && l <= r){ if((D[r] - D[l - 1] >= x[r] - x[l])){ ans = max(G[r] - G[l - 1], ans); r++; }else{ l++; } } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...