Submission #1295614

#TimeUsernameProblemLanguageResultExecution timeMemory
1295614k12_khoiBigger segments (IZhO19_segments)C++17
100 / 100
65 ms12252 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,ll> #define X first #define Y second const int N=5e5+5; int n,x; ll pre[N]; pii dp[N]; int main() { ios_base::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL); cin >> n; pre[0]=0; for (int i=1;i<=n;i++) { cin >> x; pre[i]=pre[i-1]+x; } dp[0]=make_pair(0,0); dp[1]=make_pair(1,0); for (int i=1;i<=n;i++) { dp[i]=max(dp[i],dp[i-1]); x=lower_bound(pre+1,pre+n+1,2*pre[i]-dp[i].Y)-pre; if (x<=n) dp[x]=max(dp[x],make_pair(dp[i].X+1,pre[i])); } cout << dp[n].X; }
#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...