Submission #524626

#TimeUsernameProblemLanguageResultExecution timeMemory
524626DragonO_oBigger segments (IZhO19_segments)C++17
13 / 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+99; int a[N],pref[N]; pii dp[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]; } dp[0]={0,0}; dp[1]={1,a[1]}; for(int i=2;i<=n;++i){ int l=1,r=i; while(l<r){ int mid=(l+r+1)/2; if(pref[i]-pref[mid-1]<dp[mid-1].y){ r=mid-1; } else{ l=mid; } } // if(i==4){ // cout<<"l = "<<l<<"\n"; // } dp[i]={dp[l-1].x+1,pref[i]-pref[l-1]}; } cout<<dp[n].x; } /** 5 6 2 3 9 13 */
#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...