Submission #524705

#TimeUsernameProblemLanguageResultExecution timeMemory
524705DragonO_oBigger segments (IZhO19_segments)C++17
0 / 100
1 ms332 KiB
#include <bits/stdc++.h> using namespace std; #define x first #define y second #define pb push_back #define all(a) a.begin(),a.end() #define int long long typedef long long ll; typedef long double ld; typedef unsigned long long ull; typedef pair<int,int>pii; typedef pair<ll,ll>pll; typedef vector<ll>vll; typedef vector<int>vi; typedef vector<bool>vb; typedef vector<vi>vvi; typedef vector<vll>vvll; typedef vector<pii>vpii; typedef vector<pll>vpll; const int N=5e5+55; int a[N],b[N],dp[N],pref[N]; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; for(int i=1;i<=n;++i){ cin>>a[i]; pref[i]=pref[i-1]+a[i]; } for(int i=1;i<=n;++i){ b[i]=max(b[i],b[i-1]); dp[i]=dp[b[i]]+1; int l=i+1,r=n; while(l<r){ int mid=(l+r)/2; if(pref[mid]-pref[i]<pref[i]-pref[b[i]]){ l=mid+1; } else{ r=mid; } } b[l]=i; } 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...