지금 말하는 자료구조 관리는

  • 스택을 오름차순인 상태로 유지하기
  • pq를 x이하의 값만 포함하게 하기

같은 것들이다.

스택을 오름차순으로 관리할 때, 보통

    while(!st.empty() && st.top() > now)  st.pop();
    st.push(now);

같은 코드를 짠다.

!st.empty()를 안 쓴다면 빈 스택의 top에 접근할 수 있기 때문이다.
근데 저런 while문이 많아지면 좀 귀찮아진다.
저걸 써야 하는 이유는 빈 스택의 top에 접근하기 때문이니 스택이 안 비어있게 만들어주면 된다.
처음에 st에 -inf를 넣어주면 -inf보다 작은 원소가 없으므로 -inf는 항상 스택에 들어있으니 문제가 해결된다.

pq에서도 우선순위가 -inf인 원소를 처음에 넣어주어 계속 pq에 들어있게 하면 된다.
끝.