728x90
- C++
#include <algorithm>
#include <iostream>
#include <stack>
using namespace std;
stack<int> st; // histogram's index
int arr[100002]; // histogram's height
int N, answer;
int main() {
cin.tie(0);
ios_base::sync_with_stdio(0);
cin >> N;
for (int i = 1; i <= N; i++) cin >> arr[i];
st.push(0);
for (int i = 1; i <= N + 1; i++) {
while (!st.empty() && arr[st.top()] > arr[i]) {
int height = arr[st.top()];
st.pop();
int width = i - st.top() - 1;
answer = max(answer, height * width);
}
st.push(i);
}
cout << answer;
return 0;
}
|
cs |
728x90
'PS' 카테고리의 다른 글
BOJ 2304 - 창고 다각형 (0) | 2020.10.26 |
---|---|
BOJ 14719 - 빗물 (0) | 2020.10.26 |
BOJ 1935 - 후위 표기식 2 (0) | 2020.10.25 |
BOJ 1238 - 파티 (0) | 2020.10.02 |
BOJ 1929 - 소수 구하기 (0) | 2020.09.30 |