Submission #338900

#TimeUsernameProblemLanguageResultExecution timeMemory
338900nandonathanielBigger segments (IZhO19_segments)C++14
27 / 100
1598 ms71148 KiB
#include<bits/stdc++.h>
using namespace std;
const int MAXN=3005;
 
long long dp[MAXN][MAXN],pref[MAXN];
int a[MAXN];
int 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];
	}
	memset(dp,-1,sizeof(dp));
	dp[0][0]=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=i;j++){
			for(int k=i-1;k>=0;k--){
				if(dp[k][j-1]!=-1 && pref[k]-pref[dp[k][j-1]-1]<=pref[i]-pref[k]){
					dp[i][j]=k+1;
					break;
				}
			}
		}
	}
	for(int j=n;j>=1;j--){
		if(dp[n][j]!=-1){
			cout << j << '\n';
			break;
		}
	}
	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...