| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2.5 초 | 1024 MB | 510 | 137 | 92 | 27.139% |
지금까지 세상에 존재하지 않았던 새로운 자료구조 Queueueue를 소개한다. 자료구조 Queueueue는 가로 Queue와 세로 Queue로 구성되어 있으며, 두 Queue가 십자가로 겹친 형태이다. 즉, 원소 1개에 대해서 중간 지점을 공유하고 있다. Queueueue의 정확한 정의는 다음과 같다.
처음에 Queueueue는 비어있으며 Queueueue는 다음 13가지 명령을 할 수 있다.
hpush x : 가로 Queue의 맨 뒤에 정수 $x$를 넣는다. $(1 \le x \le 100,000円)$hpop : 가로 Queue에 정수가 있다면 맨 앞에 있는 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다.hfront : 가로 Queue에 정수가 있다면 맨 앞에 있는 정수를 출력한다. 없다면 -1을 대신 출력한다.hback : 가로 Queue에 정수가 있다면 맨 뒤에 있는 정수를 출력한다. 없다면 -1을 대신 출력한다.hsize : 가로 Queue에 들어있는 정수의 개수를 출력한다.vpush x : 세로 Queue의 맨 뒤에 정수 $x$를 넣는다. $(1 \le x \le 100,000円)$vpop : 세로 Queue에 정수가 있다면 맨 앞에 있는 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다.vfront : 세로 Queue에 정수가 있다면 맨 앞에 있는 정수를 출력한다. 없다면 -1을 대신 출력한다.vback : 세로 Queue에 정수가 있다면 맨 뒤에 있는 정수를 출력한다. 없다면 -1을 대신 출력한다.vsize : 세로 Queue에 들어있는 정수의 개수를 출력한다.size : Queueueue에 들어있는 정수의 개수를 출력한다.empty : Queueueue가 비어있으면 1, 아니면 0을 출력한다.middle : Queueueue에 정수가 있다면 Queueueue의 공유 원소에 해당하는 정수를 출력한다. 없다면 -1을 대신 출력한다.첫 번째 줄에 명령의 수 $N$이 주어진다. $(1 \le N \le 2,000円,000円)$
두 번째 줄부터 $N$개의 줄에 걸쳐 명령이 하나씩 주어진다.
출력을 요구하는 명령이 주어질 때마다, 명령의 결과를 한 줄에 하나씩 출력한다.
33 empty hpush 2 vpush 3 vfront empty hpush 4 hfront vpush 1 hpush 5 middle vback hback vpush 6 middle hsize vpop vfront hpop vsize hpop size hpop hpop vpop vpop size vfront hfront vback hback hpop size empty
1 2 0 2 4 1 5 4 3 2 4 3 3 1 3 5 4 6 -1 0 -1 -1 -1 -1 -1 0 1
33 hpush 1 vpush 2 vpush 3 vpop vpop vpop vpush 1 vpush 2 hpush 3 vpop vpop hpush 4 hpush 5 vpush 6 vpush 7 hpop vpop hpop vpop hpop vpush 1 vpush 2 vpush 3 vpush 4 vpop hpush 5 hpush 6 hpop vpop hpop vpop hpop hpop
1 2 3 1 2 3 4 6 5 7 1 3 2 5 6 4 -1
33 middle hpush 1 middle vpush 2 middle hpush 3 middle vpush 4 middle hpush 5 middle vpush 6 middle hpush 7 middle vpush 8 middle hpush 9 middle vpush 10 middle hpop middle hpop middle hpop middle hpop middle hpop middle hpop middle
-1 1 1 1 2 3 3 3 4 5 5 2 5 4 7 5 7 7 9 9 6 6 3
Contest > BOJ User Contest > 유틸컵 > 제1회 유틸컵 - Chapter 2 Q번