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

 

7662번: 이중 우선순위 큐

입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적

www.acmicpc.net

 

 

[난이도] Gold5
[유형] Queue,Multiset

[풀이]
두 개의 Queue 혹은 Multiset을 이용해 간단히 해결할 수 있다.

 

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

 

 


https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Gold5/7662.cpp

+ Recent posts