아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

문제 추천 시스템 Version 1

시간 제한1초메모리 제한512 MB

요약
문제 번호와 난이도로 이루어진 목록에 추가, 삭제, 그리고 가장 어려운 문제나 가장 쉬운 문제를 묻는 명령을 처리한다. 난이도가 같으면 문제 번호로 순서를 정한다.
난이도

보통10점 중 5점

유형
힙, 해시맵, 구현, 정렬
정답자
아직 제출이 없습니다

문제

tony9402는 최근 깃헙에 코딩테스트 대비 문제를 직접 뽑아서 "문제 번호, 난이도"로 정리해놨다.

깃헙을 이용하여 공부하시는 분들을 위해 새로운 기능을 추가해보려고 한다.

만들려고 하는 명령어는 총 3가지가 있다. 아래 표는 각 명령어에 대한 설명이다.

recommend xxxx가 1인 경우 추천 문제 리스트에서 가장 어려운 문제의 번호를 출력한다. 만약 가장 어려운 문제가 여러 개라면 문제 번호가 큰 것으로 출력한다. xx가 -1인 경우 추천 문제 리스트에서 가장 쉬운 문제의 번호를 출력한다. 만약 가장 쉬운 문제가 여러 개라면 문제 번호가 작은 것으로 출력한다.
add PP LL추천 문제 리스트에 난이도가 LL인 문제 번호 PP를 추가한다. (추천 문제 리스트에 없는 문제 번호 PP만 입력으로 주어진다. 이전에 추천 문제 리스트에 있던 문제 번호가 다른 난이도로 다시 들어 올 수 있다.)
solved PP추천 문제 리스트에서 문제 번호 PP를 제거한다. (추천 문제 리스트에 있는 문제 번호 PP만 입력으로 주어진다.)

명령어 recommend는 추천 문제 리스트에 문제가 하나 이상 있을 때만 주어진다.

명령어 solved는 추천 문제 리스트에 문제 번호가 하나 이상 있을 때만 주어진다.

위 명령어들을 수행하는 추천 시스템을 만들어보자.

입력

첫 번째 줄에 추천 문제 리스트에 있는 문제의 개수 NN이 주어진다.

두 번째 줄부터 N+1N + 1 줄까지 문제 번호 PP와 난이도 LL이 공백으로 구분되어 주어진다.

N+2N + 2 줄은 입력될 명령문의 개수 MM이 주어진다.

그다음 줄부터 MM개의 위에서 설명한 명령문이 입력된다.

출력

recommend 명령이 주어질 때마다 문제 번호를 한 줄씩 출력한다. 최소 한 번의 recommend 명령어가 들어온다.

제한

  • 1≤N,P≤100,0001 \le N, P \le 100,000
  • 1≤M≤10,0001 \le M \le 10,000
  • 1≤L≤1001 \le L \le 100, LL은 자연수
  • x=±1x = \pm 1

예제1

  1. 예제 1

    입력
    5
    1000 1
    1001 2
    19998 78
    2667 37
    2042 55
    8
    add 1402 59
    recommend 1
    solved 1000
    solved 19998
    recommend 1
    recommend -1
    solved 1001
    recommend -1
    
    예상 출력
    19998
    1402
    1001
    2667