페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#4735

수열과 쿼리1 3s 256MB

문제

양의 정수 값을 원소로 갖고 오름차순으로 관리되는 수열이 있다.

수열의 초기 상태는 비어있으며, 쿼리를 통해 수열에 값이 추가되고 삭제되고 변경된다.

쿼리마다 아래 4가지 명령 중 한개의 명령 정보가 주어지면 명령에 맞는 작업을 수행해야 한다.

 

명령1 : "insert x"

수열에 값이 x인 원소를 추가한다.

만약, x인 원소가 이미 수열에 존재하면 추가하지 않는다. 추가후에도 오름차순으로 수열이 유지되어야 한다.​

 

명령2 : "erase x"

수열에 x인 원소가 있으면 수열에서 삭제한다.

삭제후에도 오름차순으로 수열이 유지되어야 한다.​

 

 

명령3 : "update x y"

수열에 x인 원소가 있으면 y로 변경한다.

만약, y인 원소가 이미 있으면 아무것도 수행하지 않는다.

변경 후에도 오름차순으로 수열이 유지되어야 한다.

 

명령4 : "print c"

수열의 맨 앞에서부터 c번째 값을 출력한다.

만약, 수열의 원소가 c개보다 작으면 마지막 원소 값을 출력하고, 수열이 비어있으면 'empty'를 출력한다.


입력

첫 줄에 테스트 케이스 T(1~5)가 입력된다.

각 테스트 케이스의 첫 번째 줄에 쿼리수 Q(1~100)가 입력된다.

각 테스트 케이스의 두 번째 줄부터 Q개 줄에 걸쳐 명령이 한줄씩 입력된다.

쿼리 별로 명령 정보와 명령에 필요한 int 범위의 양의 정수 값(들)이 입력된다.

명령 정보는 'insert' , 'erase' , 'update' , 'print' 4가지 문자열 중 하나로 주어진다.


출력

'print' 명령을 수행한 결과를 한 줄에 한 개씩 출력한다.


예제

1

12
insert 5
insert 10
insert 20
insert 5
print 2
print 5
erase 10
update 5 30
print 2
erase 30
erase 20
print 10
10

20
30
empty

출처

teriusu

로그인해야 코드를 작성할 수 있어요.