제출 #1209412

#제출 시각아이디문제언어결과실행 시간메모리
1209412ezzzayCigle (COI21_cigle)C++20
0 / 100
1094 ms324 KiB
#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 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...