Submission #1187962

#TimeUsernameProblemLanguageResultExecution timeMemory
1187962AhmadAlhussainDivide and conquer (IZhO14_divide)C++20
100 / 100
18 ms5628 KiB
#include<iostream> #include<set> #include<vector> #include<algorithm> #include<iostream> #include<set> #include<vector> #include<algorithm> #include<map> #include<climits> #include<cmath> #include<iomanip> #include<cmath> #include<numbers> #include <valarray> using namespace std; #define int long long int n; void solve() { cin>>n; int a[n],g[n],e[n],sum[n+1]; sum[0]=0; int x=0; vector<pair<int,int>>v; int mx=0; for(int i=0;i<n;i++) { cin>>a[i]>>g[i]>>e[i]; sum[i+1]=sum[i]+g[i]; if(i>0) { x-=a[i]-a[i-1]; }//cout<<x<<' '; if(i==0||x<v.back().first) { //cout<<x<<' '; v.push_back({x,i}); } x+=e[i]; int l=0,r=v.size()-1,best=v.size()-1; while(l<=r) { int m=(l+r)/2; if(v[m].first<=x) { best=v[m].second; r=m-1; } else { l=m+1; } } //cout<<best<<'\n'; mx=max(mx,sum[i+1]-sum[best]); } cout<<mx; } signed main() { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); int t=1; while(t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...