[백준 6549번] 히스토그램에서 가장 큰 직사각형PS/백준 알고리즘[BOJ]2023. 10. 28. 23:26
Table of Contents
728x90
반응형
https://www.acmicpc.net/problem/6549
#define F first
#define S second
#include<iostream>
#include<stack>
using namespace std;
stack<pair<long long, int>> sta;
int main(void) {
cin.tie(0);
ios_base::sync_with_stdio(NULL);
long long int max, s, h;
int n;
while (1) {
cin >> n;
if (n == 0) break;
max = 0;
for (int i = 0; i <= n; i++) {
if (i == n) h = 0;
else cin >> h;
int temp;
if (sta.empty() || h > sta.top().F) sta.push({ h, i });
else if (h < sta.top().F) {
while (!sta.empty() && h <= sta.top().F) {
s = (i - sta.top().S) * sta.top().F;
if (s > max) max = s;
temp = sta.top().S;
sta.pop();
}
sta.push({ h, temp });
}
}
cout << max << "\n";
while (!sta.empty()) sta.pop();
}
return 0;
}
728x90
반응형
'PS > 백준 알고리즘[BOJ]' 카테고리의 다른 글
[백준 2448번] 별 찍기 - 11 (C++) (1) | 2023.10.29 |
---|---|
[백준 2447번] 별 찍기 -10 (C++) (1) | 2023.10.29 |
[백준 14601] 샤워실 바닥 깔기 (Large) (0) | 2023.10.27 |
[백준 1629번] 곱셈 (C++) (0) | 2023.10.26 |
[백준 14600번] 샤워실 바닥 갈기 (Small) (C++) (0) | 2023.10.26 |
@BE_개발자 :: 경이로운 개발일기
경이로운 BE 개발자가 되기 위한 프로그래밍 공부 기록장
도움이 되었다면 "❤️" 또는 "👍🏻" 해주세요! 문의는 아래 이메일로 보내주세요.