9715 相鄰最大矩形面積

2021-10-10 12:14:36 字數 918 閱讀 7003

description

在x軸上水平放置著 n 個條形圖,這 n 個條形圖就組成了乙個柱狀圖,每個條形圖都是乙個矩形,每個

矩形都有相同的寬度,均為1單位長度,但是它們的高度並不相同。

例如下圖,圖1包含的矩形的高分別為2,1,4,5,1,3,3 單位長度,矩形的寬為1單位長度。

你的任務就是計算柱狀圖中以x軸為底邊的最大矩形的面積。圖2陰影部分就是上述例子的最大矩形面積。

輸入格式

輸入資料的第一行是乙個整數 n(1≤ n ≤100000),表示柱狀圖包含 n 個矩形。

緊接著 n 個整數h1,…,hn(0≤ hi ≤20000, 1≤ i≤ n),表示柱狀圖中按從左到右順序給出的矩形

的高度。矩形的寬度為1。

輸出格式

輸出乙個整數s,表示以x軸為底邊的最大矩形的面積。

輸入樣例

72 1 4 5 1 3 3

輸出樣例8提示

這個問題,用簡單的方法分析,尋找相鄰幾個矩形豎條最矮個構成的大矩形。o(n^2)的演算法是比較容易實現的。

#include

#include

#include

using

namespace std;

//邊的數量在增加,另外就是從1數到n

//例如,n=2,第乙個迴圈就是只有乙個矩形構成的,1,2。

//第二個迴圈就是兩條邊構成的1和2

intmain()

//邊的數量在增加

for(i=

0;i)else

smax =

max(lmin*

(i+1

),smax);}

}}printf

("%d"

,smax)

;return0;

}

201409 1 相鄰數對

試題編號 201409 1 試題名稱 相鄰數對 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。輸入格式 輸入的第一行包含乙個整數n,表示給定整數的個數。第二行包含所給定的n個整數。輸出格式 輸出乙個整數,表示值正好...

201409 1 相鄰數對

試題編號 201409 1 試題名稱 相鄰數對 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。輸入格式 輸入的第一行包含乙個整數n,表示給定整數的個數。第二行包含所給定的n個整數。輸出格式 輸出乙個整數,表示值正好...

201409 1 相鄰數對

問題描述 給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。輸入格式 輸入的第一行包含乙個整數n,表示給定整數的個數。第二行包含所給定的n個整數。輸出格式 輸出乙個整數,表示值正好相差1的數對的個數。樣例輸入 610 2 6 3 7 8 樣例輸出 3樣例說明 值正好相差1的數對包括 2...