만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

헤모글로빈

면접 대비

시간 제한2초메모리 제한1024 MB

요약
환자 혈색소 수치를 쌓는 데이터베이스에 추가, 삭제, 마지막 k명의 합 조회 요청을 처리하고 결과를 출력합니다.
난이도

쉬움10점 중 3점

유형
스택, 누적 합
정답자
아직 제출이 없습니다

문제

매일 그레고리 하우스에게 많은 환자가 찾아오고, 환자마다 혈액 속 헤모글로빈 수치를 측정한다. 모든 환자의 데이터는 데이터베이스에 기록된다.

루푸스는 백만 명에 한 명꼴로 나타나고, 나머지 환자를 다루는 것은 흥미롭지 않다. 하우스가 환자를 쫓아내지 않도록, 캐디는 가끔 마지막 kk명의 환자에 대한 통계를 요청한다. 그녀가 알고 싶은 것은 이 환자들의 헤모글로빈 수치 합이다.

하우스는 염세주의자이기도 하다. 그는 가장 나중에 입원한 환자의 헤모글로빈 수치를 보고, 루푸스가 아니라고 확신하면 그 환자를 퇴원시키고 데이터베이스에서 정보를 삭제한다.

이 과정의 자동화는 체이스에게 맡겨졌다. 그러나 체이스는 이 일을 해내지 못했고, 여러분에게 도움을 청했다.

입력

첫 줄에 데이터베이스 요청 수 nn (1≤n≤1000001 \le n \le 100000)이 주어진다. 요청은 다음 중 하나이다. +x+x (1≤x≤1091 \le x \le 10^9)는 헤모글로빈 수치가 xx인 환자를 데이터베이스에 추가한다. −-는 데이터베이스의 마지막 환자를 삭제한다. ?k?k (1≤k≤1000001 \le k \le 100000)는 마지막 kk명 환자의 헤모글로빈 수치 합을 묻는다. kk는 데이터베이스의 원소 수를 넘지 않는다. 빈 데이터베이스에 삭제 요청이 들어오지 않는다. 처음에 데이터베이스는 비어 있다.

출력

−- 요청마다 삭제된 환자의 헤모글로빈 수치를 출력한다. ?k?k 요청마다 가장 늦게 도착한 kk명 환자의 헤모글로빈 수치 합을 출력한다. 답은 요청이 들어온 순서대로 출력한다.

예제1

  1. 예제 1

    입력
    7
    +1
    +2
    +3
    ?2
    -
    -
    ?1
    
    예상 출력
    5
    3
    2
    1