#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=1e5+50;
int n;
LL a[maxn];
LL sum[maxn];
int l[maxn],r[maxn];
int main()
{
int cas=0;
while(scanf("%d",&n)!=EOF)
{
cas++;
LL ans=0;
int ansl=1,ansr=1;
memset(a,-1,sizeof(a));
memset(sum,0,sizeof(sum));
if(cas!=1) printf("\n");
for(int i=1; i<=n; i++)
{
scanf("%lld",&a[i]);
sum[i]=sum[i-1]+a[i];
l[i]=i;
r[i]=i;
}
for(int i=1; i<=n; i++)
{
while(a[l[i]-1]>=a[i])
l[i]=l[l[i]-1];
}
for(int i=n; i>=1; i--)
{
while(a[r[i]+1]>=a[i])
r[i]=r[r[i]+1];
}
for(int i=1; i<=n; i++)
{
LL tmp=a[i]*(sum[r[i]]-sum[l[i]-1]);
if(tmp>ans||(tmp==ans&&(ansr-ansl>r[i]-l[i])))
{
ans=tmp;
ansl=l[i];
ansr=r[i];
}
}
printf("%lld\n%d %d\n",ans,ansl,ansr);
}
return 0;
}
UVA 1619(p256)----Feel Good
最新推荐文章于 2022-01-14 11:44:48 发布