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...