페이지

7662번: 이중 우선순위 큐

https://www.acmicpc.net/problem/7662


$O(tklgk)$

multiset을 쓴다.


#include<cstdio>
#include<set>
using namespace std;
int t, k, x;
char c;
int main() {
    for (scanf("%d", &t); t--;) {
        multiset<int> ms;
        for (scanf("%d", &k); k--;) {
            scanf(" %c%d", &c, &x);
            if (c == 'I') ms.insert(x);
            else if (!ms.empty()) x < 0 ? ms.erase(ms.begin()) : ms.erase(--ms.end());
        }
        ms.empty() ? puts("EMPTY") : printf("%d %d\n", *ms.rbegin(), *ms.begin());
    }
    return 0;
}

댓글 없음 :

댓글 쓰기