Submission #216988

#TimeUsernameProblemLanguageResultExecution timeMemory
216988lukameladzeBigger segments (IZhO19_segments)C++14
100 / 100
332 ms20856 KiB
# include <bits/stdc++.h> using namespace std; long long n,a[500005],le,ri,mid,sum[500005],s1,ans; pair <long long , long long> dp[500005]; int main() { cin>>n; for (long long i=1; i<=n; i++) { cin>>a[i]; sum[i]=sum[i-1]+a[i]; } for (long long i=1; i<=n; i++) { dp[i].second=max(dp[i].second,dp[i-1].second); s1=sum[i]-sum[dp[i].second]; dp[i].first=dp[dp[i].second].first+1; le=i+1; ri=n; ans=0; while (le<=ri) { mid=(le+ri)/2; if (sum[mid]-sum[i]>=s1) { ri=mid-1; ans=mid; } else le=mid+1; } dp[ans].second=i; } cout<<dp[n].first<<endl; }
#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...