遍历数组中每一元素,左右延伸得出宽度。
#include<iostream> #include<cstdio> using namespace std; int main() { int n,a[1005],sum = 0; cin >> n; for(int i = 1;i <= n;i++) cin >> a[i]; for(int i = 1;i <= n;i++) { int j,left = -1,right = -1; for(j = i-1;j > 0;j--) { if(a[j] < a[i]) { left = j; break; } } if(left == -1) left = 0; for(j = i+1;j <= n;j++) { if(a[j] < a[i]) { right = j; break; } } if(right == -1) right = n+1; sum = max(sum,(right-left-1)*a[i]); } cout << sum << endl; return 0; }