#include<bits/stdc++.h>
using namespace std;
int n,c[5001],sum[5001];
map<int,map<int,int>>f;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>c[i],sum[i]=sum[i-1]+c[i];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n-i+1;j++)
f[j][j+i-1]=sum[j+i-1]-sum[j-1]-min(f[j+1][j+i-1],f[j][j+i-2]);
}
cout<<f[1][n];
return 0;
}
本来f数组是开f[5010][5010]的
结果MLE了一个点
本蒟蒻转念一想
上次老师说map用的内存很小
肯定可以卡过去
结果原来的那个点变成了TLE
而用原本的f[5010][5010]却不会
求各位大佬帮我看看错误出在哪里了