중복 원소를 오름차순으로 저장하는 multiset 으로 풀었다.
원소를 지우기 전에, 사이즈를 꼭 체크하도록 하자..
다시 풀어볼 문제.
#include <bits/stdc++.h>
using namespace std;
int T, k, n;
char ch;
void solve(){
multiset<int> ms;
cin >> k;
while(k--){
cin >> ch >> n;
if(ch == 'I') ms.insert(n);
else if(ms.size() > 0){
if(n > 0){ // 최댓값 삭제
auto iter = ms.end();
ms.erase(--iter);
}else ms.erase(ms.begin());
}
}
if(ms.size() == 0) cout << "EMPTY\n";
else {
auto iter = ms.end(); --iter;
cout << *iter << ' ' << *ms.begin() << '\n';
}
return;
}
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> T;
while(T--){
solve();
}
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
동전 0 백준 11047번 c++ (0) | 2022.02.24 |
---|---|
절댓값 힙 백준 11286번 c++ (0) | 2022.02.24 |
Z 백준 1074번 c++ (0) | 2022.02.23 |
경로 찾기 백준 11403번 c++ (0) | 2022.02.23 |
다리 놓기 백준 1010번 c++ (0) | 2022.02.23 |