Submission #216995

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