不懂就问
查看原帖
不懂就问
1069485
Little_Dragongod楼主2024/8/3 16:44

为啥是UN?

#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;
	}
	
2024/8/3 16:44
加载中...