풀이
multiset을 써서 풀었는데
map으로 풀어도 될 거 같고
아무튼 그냥 짜면 된다.
코드
#include <iostream>
#include <set>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int k;
cin >> k;
char c; int n;
multiset<int> v;
while (k--) {
cin >> c >> n;
if (c == 'I') {
v.insert(n);
}
else if (c == 'D' && v.size() > 0) {
if (n == -1) {
v.erase(v.begin());
}
else {
auto it = v.end();
it--;
v.erase(it);
}
}
}
if (v.size() == 0) {
printf("EMPTY\n");
} else {
auto it = v.end();
it--;
printf("%d %d\n", *it, *v.begin());
}
}
return 0;
}
아무말
백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이