Submission #216926

#TimeUsernameProblemLanguageResultExecution timeMemory
216926keta_tsimakuridzeBigger segments (IZhO19_segments)C++14
100 / 100
332 ms20884 KiB
#include<bits/stdc++.h> using namespace std; long long sum[500005],a[500005],m,k,n,bef[500005],cursum,dp[500005],l,r,ans; int main(){ cin>>n; for(k=1;k<=n;k++){ cin>>a[k]; sum[k]=sum[k-1]+a[k]; } for(k=1;k<=n;k++){ bef[k]=max(bef[k],bef[k-1]); cursum=sum[k]-sum[bef[k]]; dp[k]=dp[bef[k]]+1; l=k; r=n; ans=0; while(l<=r){ int mid=(l+r)/2; if(sum[mid]-sum[k]>=cursum){ r=mid-1; ans=mid; } else l=mid+1; } bef[ans]=k; } cout<<dp[n]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...