这是单调栈吧~~标签出bug了
查看原帖
这是单调栈吧~~标签出bug了
445896
I_m_FW楼主2021/10/22 15:41

单调栈过了 建正方形

#include <bits/stdc++.h>
using namespace std;
const int N=100010;
int a[N],n,p,s[N],w[N];
long long ans;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	for(int i=1;i<=n+1;i++){
		if(a[i]>s[p]){
			s[++p]=a[i];w[p]=a[i];
		}else {
			long long wid=0;
			while(s[p]>a[i]){
				wid+=w[p];
				ans=max(ans,(long long)wid*s[p]);
				p--;
			}s[++p]=a[i];w[p]=wid+a[i];
		}
	}
	cout<<ans;
}
2021/10/22 15:41
加载中...