제출 #590685

#제출 시각아이디문제언어결과실행 시간메모리
590685HanksburgerBigger segments (IZhO19_segments)C++17
13 / 100
1 ms352 KiB
#include <bits/stdc++.h> using namespace std; int a[500005], sum[500005]; pair<int, int> dp[500005]; bool cmp(pair<int, int> x, pair<int, int> y) { if (x.first!=y.first) return x.first<y.first; return x.second>y.second; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; for (int i=1; i<=n; i++) { cin >> a[i]; sum[i]=sum[i-1]+a[i]; } dp[1]={1, a[1]}; for (int i=1; i<=n; i++) { int ind=lower_bound(sum+i+1, sum+n+1, dp[i].second+sum[i])-sum; if (ind<=n) dp[ind]=max(dp[ind], {dp[i].first+1, sum[ind]-sum[i]}, cmp); dp[i+1]=max(dp[i+1], {dp[i].first, dp[i].second+a[i+1]}, cmp); } cout << dp[n].first; return 0; }
#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...