티스토리 뷰

나중에 set 자료구조, prev 함수 쓸 일 있을 거 같아서 기록해둠

 

#include <iostream>
#include <set>
#include <climits>
using namespace std;
int main()
{
    ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);

    int t;
    cin >> t;

    for(int i=0; i<t; i++)
    {
        int k;
        cin >> k;

        multiset<int> d_p_q;//double priority queue
        for(int j=0; j<k; j++)
        {
           char op1;
           int op2;
           
           cin >> op1 >> op2;

            if(op1 == 'D' and d_p_q.size() > 0)
            {
                if(op2 == 1)//최댓값 삭제
                {
                    d_p_q.erase(prev(d_p_q.end()));//end 이전의 주소(prev)를 erase해야 마지막 원소가 지워짐
                }
                else if(op2 == -1)//최소값 삭제
                {
                    d_p_q.erase(d_p_q.begin());
                }
            }
            else if(op1 == 'I')
            {
                d_p_q.insert(op2);
            }
        }

        if(d_p_q.size() == 0)
            cout << "EMPTY" << endl;
        else
        {
            int min_value = *d_p_q.begin();
            int max_value = *prev(d_p_q.end());
            cout << max_value << " " << min_value << '\n';
        }
    }

    return 0;
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함