单调队列WA*2求助
查看原帖
单调队列WA*2求助
511609
无钩七不改名楼主2022/12/14 18:50

https://www.luogu.com.cn/record/97307784

#include<bits/stdc++.h>
using namespace std;

int n;
int a[2000005];
int f[2000005],l=1,r=0;
long long ans;

int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		while(l<=r&&a[f[r]]>a[i]){
			ans=max(ans,1ll*(i-f[r-1]-1)*a[f[r]]);
			r--;
		}
		//ans=max(ans,1ll*(i-f[l]+1)*a[f[l]]);
		f[++r]=i;
	}
	for(int i=l;i<=r;i++){
		ans=max(ans,1ll*(n-f[i]+1)*a[f[i]]);
	}
	printf("%lld",ans);
	return 0;
} 

谢谢qwq

2022/12/14 18:50
加载中...