思路:暴力法。枚举以每一个hi为高,统计在其左边和右边高于(含等于)hi的矩形个数为count,计算出每个矩形的面积tmp=hi*count,标记出其最大值即可。
代码如下:
#include<iostream>
using namespace std;
const int N = 1000;
int h[N];
int main(){
int n;
cin>>n;
for(int i = 0; i < n; i++){
cin>>h[i];
}
int max = 0;
for(int i = 0; i < n; i++){
int count = 1,tmp = 0;
for(int j = i + 1; j < n; j++){
if(h[i] > h[j])
break;
else
count++;
}
for(int j = i - 1; j >= 0; j--){
if(h[i] > h[j])
break;
else
count++;
}
tmp = h[i] * count;
// cout<<h[i]<<' '<<count<<' ';
// cout<<i<<' '<<tmp<<endl;
if(tmp > max){
max = tmp;
}
}
cout<<max<<endl;
return 0;
}