问题描述
题目描述
![CCF-CSP-201312-3](https://i-blog.csdnimg.cn/blog_migrate/c121e03135cf8b5421fbda16bcafafa3.png)
输入样例与输出样例
样例输入
6
3 1 6 5 2 3
样例输出
10
AC代码与算法思路
#include <stdio.h>
#include <vector>
using namespace std;
#define MaxSize 1010
int main()
{
int n, Height, MaxArea = 0;
int Rectangular[MaxSize];
int MaxAreaSet[MaxSize];
scanf("%d", &n);
for (int i = 0; i < n; ++i)
{
scanf("%d", &Height);
Rectangular[i] = Height;
}
for (int i = 0; i < n; ++i)
{
MaxAreaSet[i] = Rectangular[i];
int MinHeight = Rectangular[i];
for (int j = i - 1; j >= 0; --j)
{
if (Rectangular[j] < MinHeight)
MinHeight = Rectangular[j];
int TempArea = (i - j + 1) * MinHeight;
if (TempArea > MaxAreaSet[i])
MaxAreaSet[i] = TempArea;
}
if (MaxAreaSet[i] > MaxArea)
MaxArea = MaxAreaSet[i];
}
printf("%d\n",MaxArea);
return 0;
}