Submission #80967

#TimeUsernameProblemLanguageResultExecution timeMemory
80967farukkastamonudaDivide and conquer (IZhO14_divide)C++14
48 / 100
1077 ms4540 KiB
#include <bits/stdc++.h> #define fi first #define se second #define lo long long #define inf 1000000000 #define md 1000000007 #define li 100005 #define mp make_pair #define pb push_back using namespace std; int n,beg; lo int x[li], g[li], d[li]; lo int cev, sume[li], sumg[li]; bool check(int val){ if(x[val] - x[beg] <= sume[val] - sume[beg - 1]) return true; return false; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0),cout.tie(0); //scanf("%d", &n); cin>>n; for(int i = 1; i <= n; i ++){ //scanf("%lld %lld %lld", &x[i], &g[i], &d[i]); cin>>x[i]>>g[i]>>d[i]; sume[i] = sume[i - 1] + d[i]; sumg[i] = sumg[i - 1] + g[i]; } for(int i = 1; i <= n; i ++){ int bas = i, son = n; while(bas <= son){ int mid = (bas + son) / 2; beg = i; if(check(mid)) bas = mid + 1; else son = son - 1; } cev = max(cev, sumg[son] - sumg[i - 1]); } //printf("%lld\n", cev); cout<<cev<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...