a[n + 1] = t = 0;
long long area = 0;
for(int i = 1; i <= n + 1; i++) {
    if(a[i] > s[t]) s[++t] = a[i], w[t] = 1;
    else {
        int width = 0;
        while(a[i] < s[t]) {
            width += w[t];
            area = max(area, (long long)width * s[t]);
            t--;
        }
        width++;
        s[++t] = a[i], w[t] = width;
    }
}

 

posted on 2022-07-10 10:46  我疯故我在  阅读(17)  评论(0编辑  收藏  举报