#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100000 ;
using ll = long long ;
ll q[N],a[N];
int main()
{
ios::sync_with_stdio(false);
int n;
while(cin>>n,n){
for(int i=1;i<=n;i++) cin>>a[i];
ll tot=0,ans=0;;
a[n+1]=0;
for(int i=1;i<=n+1;i++){
while(tot&&a[q[tot]]>a[i]){
ans=max(ans,(i-q[tot-1]-1)*a[q[tot]]);
tot--;
}
q[++tot]=i;
}
cout<<ans<<"\n";
}
}
直方图中最大的矩形(单调栈)
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:2021牛客暑期多校训练营1
下一篇:Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
浅析MySQL 8.0直方图原理
本文将对直方图概念进行介绍,借助举例描述直方图的使用方式,对创建/删除直方图的原理进行浅析,并通过例子说明其应用场景。
直方图 mysql 执行计划 查询优化 -
【单调栈】柱状图中最大的矩形
本题是要找每个柱子左右两边第一个小于该柱子的下标,所以从栈底到栈顶的顺序应该是从小到大的顺序,这样栈顶的
算法 c++ 开发语言 i++ 入栈 -
单调栈:leetcode 84. 柱状图中最大的矩形/85最大矩形
84. 柱状图中最大的矩形遍历数组,以每一个元素作为高,向左右两边拓展,遇到第一个比该元素小的位置停下图片源自leetcode力扣一.暴
leetcode 算法 职场和发展 遍历数组 i++ -
[84].柱状图中最大的矩形
柱状图中最大的矩形题目函数原型边界判断算法设计:暴力算法设计 题目给定 n
柱状图 算法设计 #include -
剑指 Offer II 039. 直方图最大矩形面积 单调栈
剑指 Offer II 039. 直方图最大矩形面积 单调栈,还是要练
java servlet 开发语言 柱状图 数组