題意:
給你n個數,現在你要選一段區間然後減去區間的最大值,問答案最大是多少?
解析:
我們枚舉最大值,因爲-30<=ai<=30,範圍很小
然後遍歷一遍求最大值即可。
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+1000;
int a[N];
int n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
// int maxsum=0;
int ans=0;
for(int i=1;i<=30;i++)
{
int maxsum=0;
for(int j=1;j<=n;j++)
{
if(a[j]<=i)
{
maxsum=max(0,maxsum)+a[j];
ans=max(ans,maxsum-i);
}
}
}
cout<<ans<<endl;
}