#include <iostream>
#include <stack>
using namespace std;
struct node { int idx; long long h; };

int main() {
    ios_base::sync_with_stdio(false); cin.tie(nullptr);

    int n;
    long long res=0;
    stack<node> st; //단조 증가 스택

    cin >> n;
    for(int i=0; i<n; i++) {
        long long h;
        cin >> h;
        while(!st.empty()&&st.top().h>h) {
            node S=st.top(); st.pop();
            long long val=0;
            if(!st.empty()) val=(i-st.top().idx-1)*S.h; // 왼쪽 경계 ~ i
            else val=i*S.h; // 마지막 조각
            
            res=(res>val?res:val);
        }
        st.push({i, h});
    }
    while(!st.empty()) {
        node S=st.top(); st.pop();
        long long val=0;
        if(!st.empty()) val=(n-st.top().idx-1)*S.h; // 왼쪽 경계 ~ i
        else val=n*S.h; // 마지막 조각22
        //cout << val << '\n';
        res=(res>val?res:val);
    }
    
    cout << res;
}

Intégrer sur un site web

Pour intégrer ce projet à votre site web, copiez le code suivant et collez-le dans le HTML de votre site web :