제출 #1186845

#제출 시각아이디문제언어결과실행 시간메모리
1186845PieArmyBigger segments (IZhO19_segments)C++20
37 / 100
158 ms327680 KiB
#include<bits/stdc++.h> typedef long long ll; #define pb push_back #define fr first #define sc second #define endl '\n' using namespace std; int n; ll arr[500023]; vector<vector<int>>dp; int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL); cin>>n; for(int i=1;i<=n;i++){ cin>>arr[i]; arr[i]+=arr[i-1]; } dp.resize(n+2,vector<int>(n+1,0)); dp[1][0]=1; for(int i=1;i<=n;i++){ for(int j=0;j<i;j++){ if(dp[i][j]==0)continue; dp[i+1][j]=max(dp[i+1][j],dp[i][j]); int l=i+1,r=n+1; while(l<r){ int m=(l+r)/2; if(arr[m]+arr[j]>=arr[i]*2)r=m; else l=m+1; } if(l!=n+1){ dp[l][i]=max(dp[l][i],dp[i][j]+1); } } } int ans=0; for(int i=0;i<=n;i++){ ans=max(ans,dp[n+1][i]); } cout<<ans; }
#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...