반응형
https://www.acmicpc.net/problem/2493
왼쪽에 현재 탑보다 이미 큰 탑이 있고, 그 큰 탑보다 왼쪽에 있는 탑들이 작다면, 그 작은 탑들로는 어차피 갈 일이 없습니다.
#include <iostream>
int n, a, top = -1;
std::pair<int, int> stk[500000];
int main() {
scanf("%d", &n);
for (int i = 1; i <= n && scanf("%d", &a); i++) {
while (top != -1 && stk[top].first < a) top--;
if (top == -1) printf("0 ");
else printf("%d ", stk[top].second);
stk[++top] = { a, i };
}
}
반응형
'Algorithm' 카테고리의 다른 글
백준 1011 : Fly me to the Alpha Centauri (0) | 2021.11.15 |
---|---|
백준 18258 : 큐 2 (0) | 2021.11.15 |
백준 2504 : 괄호의 값 (0) | 2021.11.14 |
백준 5430 : AC (0) | 2021.11.14 |
백준 1406 : 에디터 (0) | 2021.11.14 |