注意:本题的实际取值范围与题干不符,按题目来写只会得90分,需要扩大数组大小与高度h的范围!
思路:遍历数组,从每个小长方形开始与后面递增数量的长方形进行组合,记录组合后的矩形的宽度(width)与高度(min),相乘就是矩形的面积,再记录面积的最大值,最后进行输出。0算法,完全暴力
#includeint h[2001]; //题干为1000 int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &h[i]); } int min = 100001; //题干为10000 int Smax = 0; int width = 0; for (int i = 0; i < n; i++) { min = 100001; for (int o = i; o < n; o++) { if (h[o] < min) { min = h[o]; } width++; if (Smax < width * min) { Smax = width * min; } } width = 0; } printf("%d", Smax); }



