社区讨论

不懂就问

SP1805HISTOGRA - Largest Rectangle in a Histogram参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lzdw3hgo
此快照首次捕获于
2024/08/03 16:46
2 年前
此快照最后确认于
2024/08/03 18:16
2 年前
查看原帖
为啥是UN?
C
#include<bits/stdc++.h>
using namespace std;

#define N 100005

int h[N],st[N];


int main()
{
	while(true)
	{
		int n,h_min=INT_MAX;
		cin>>n;
		if(n==0) break;
		
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&h[i]);
			h_min=min(h_min,h[i]);
		}
		
		int t=0,max_=h_min*n;
		
		for(int i=1;i<=n;i++)
		{
			while(t>0&&h[st[t]]>h[i])
			{
				 max_=max(max_,h[st[t]]*(i-st[t]));
				 t--;
			}
			
			st[++t]=i;
			
		}
		
		
		cout<<max_<<endl;
	}
	

回复

0 条回复,欢迎继续交流。

正在加载回复...