D. [CSP201312] 最大的矩形

    Type: Default 1000ms 512MiB

[CSP201312] 最大的矩形

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

在横轴上放了 nn 个相邻的矩形,每个矩形的宽度是 11,而第 i (1in)i~(1 \le i \le n) 个矩形的高度是 hih_i。这 nn 个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是 3,1,6,5,2,33, 1, 6, 5, 2, 3

请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是 1010

输入格式

从标准输入读入数据。

第一行包含一个整数 nn,即矩形的数量。

第二行包含 nn 个整数 h1,h2,,hnh_1, h_2,\cdots, h_n,相邻的数之间由空格分隔。hih_i 是第 ii 个矩形的高度。

输出格式

输出到标准输出。

输出一行,包含一个整数,即给定直方图内的最大矩形的面积。

6
3 1 6 5 2 3
10

子任务

本题数据范围有所加强,对于所有数据,保证 1n105, 1hi1091\le n\le 10^5,~1\le h_i\le 10^9

前 20 组数据每个测试点 4 分,后续 66 个测试点总计 20 分,需要全部通过获得。

提示

Chap 04 栈 直方图内最大矩形

利用单调栈找到两边第一个比自己小的数。