#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
const int N=5005;
int dp[N];
int a[N];
int fun(int l, int r){
int m=r-l+1;
vector<int>ps(N);
for(int i=l;i<=r;i++){
ps[i]=ps[i-1]+a[i];
}
int mx=0;
for(int i=l+1;i<r;i++){
int s=0;
map<int,int>mp,mp2;
for(int j=i;j>=l;j--){
mp[ps[i]-ps[j-1]]++;
}
for(int j=i+1;j<=r;j++){
s+= mp[ps[j]-ps[i]];
}
mx=max(mx,s);
}
return mx;
}
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
for(int j=0;j<i;j++){
dp[i]=max(dp[i],dp[j]+fun(j+1,i));
}
}
cout<<dp[n];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |