Logo
(追記) (追記ここまで)

32354번 - 덱 조작과 쿼리

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB3831327834.978%

문제

하넬은 카드게임의 덱(deck)을 조작하는 방법을 연구하고 있다. 덱은 위와 아래가 있는 카드의 리스트고, 각 카드에는 0ドル$ 이상 10ドル^9$ 이하의 정수가 하나씩 적혀있다. 덱은 처음에 카드가 없는 비어있는 상태고, 하넬은 현재 덱에 4가지 중 하나의 행동을 해서 덱의 상태를 바꾸고자 한다:

  • push$x$: $x$가 적혀있는 카드를 덱의 가장 위에 둔다. $(0 \le x\le 10^9)$
  • pop: 덱 가장 위에서 카드를 제거한다. 현재 덱에 카드가 없는 경우에는 pop이 주어지지 않는다.
  • restore$i$: 현재 덱의 상태를 $i$번째 행동 이후의 덱의 상태와 동일하게 만든다. $i$가 0ドル$인 경우는 덱을 카드가 없는 초기 상태로 되돌린다. $i$번째 행동이 아직 이뤄지지 않은 경우는 주어지지 않는다.
  • print: 현재 덱에 있는 카드에 적힌 모든 수의 합을 출력한다. 덱에 카드가 1ドル$장도 없을 경우에는 0ドル$을 출력한다.

하넬은 아쉽게도 덱 조작 방법을 연구하느라 바쁘다. 하넬을 대신해서 각 print행동이 주어질 때 덱에 있는 카드의 수를 계산해주자.

입력

첫 번째 줄에 행동의 수 $N$가 주어진다. $(1\le N\le 500,000円)$

두 번째 줄 부터 $N$개의 줄에 걸쳐 행동이 문제에 적힌 형식대로 한 줄에 하나씩 주어진다. push$x$, restore$i$사이에는 공백이 하나씩 주어지며, print 명령은 반드시 1ドル$개 이상 주어진다.

출력

print 행동이 주어질 때마다 덱에 있는 카드의 수의 합을 한 줄에 하나씩 출력한다.

제한

예제 입력 1

5
print
push 10
push 20
pop
print

예제 출력 1

0
10

예제 입력 2

11
push 10
push 20
push 30
print
pop
pop
print
restore 3
pop
push 40
print

예제 출력 2

60
10
70

힌트

출처

University > KAIST > KAIST HAJE 프로그래밍 대회 E번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /