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

#4945

그룹 이동 1s 256MB

문제

'A' ~ 'J' 로 분류되는 10개의 그룹이 있다.

 

아래와 같은 명령이 수행된다.

- 각 그룹에 1~200,000 범위의 값 x가 추가되고, 삭제된다.   x는 존재하는 경우 전체 그룹에서 한 개만 존재한다.

- 그룹의 모든 값이 다른 그룹으로 이동한다.

- 각 그룹에 존재하는 가장 작은 값을 알고 싶다.

 

1. add x gid           200,000회

x인 값을 gid 그룹의 끝에 추가한다.

x가 중복되는 경우는 없다.

 

2. remove x            10,000회

x인 값을 제거한다.

유효하지 않은 입력은 주어지지 않는다.

 

3. move gid1 gid2      100,000회

gid1 그룹의 모든 값을 gid2 그룹으로 이동한다

유효하지 않은 입력은 주어지지 않는다.

 

4. get gid             100회

gid 그룹에 존재하는 값 중 가장 작은 값을 출력한다.

존재하는 값이 없다면 -1을 출력한다.

유효하지 않은 입력은 주어지지 않는다.


입력

첫째 줄에 쿼리 수 Q가 입력된다.

둘째 줄부터 Q개의 줄에 걸쳐 명령이 주어진다.

 

Q <= 310,100

1 <= x <= 200,000

'A' <= gid <= 'J'

 


출력

get 명령에 대한 결과 값을 한 줄씩 출력 한다.


예제

15

add 1 A
add 2 B
add 3 B
add 4 B
add 5 B
add 6 A
add 7 C
add 8 C
get B
move A B
get B
remove 1
move B C
get B
get C
2

1
-1
2


출처

teriusu

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