To-Do List

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

요약
시작 시각과 소요 시간이 있는 과제가 삽입과 삭제로 바뀔 때, 매 갱신 후 모든 과제를 가장 일찍 끝내는 시각을 구한다.
난이도

어려움10점 중 8점

유형
그리디, 힙, 구현, 시뮬레이션
정답자
아직 제출이 없습니다

문제

Wow, your to-do list is empty...but not for long! Over the next few seconds, you’ll have to handle QQ updates to your to-do list.

For the first type of update, you will have to add a new homework assignment to your to-do list. This assignment will be released at the beginning of second ss, and will take tt seconds to complete (1≤s,t≤1061 ≤ s, t ≤ 10^6). For the second type of update, you will have to remove the ii-th homework assignment that was added to your to-do list.

After each update, you wonder: what’s the earliest time you can finish all of the homework assignments in your to-do list? You can only work on one assignment at a time, and you must finish a homework assignment once you start it without switching to another assignment.

입력

The first line of input contains an integer QQ (1≤Q≤1061 ≤ Q ≤ 10^6).

The next QQ lines each contain a line starting with a character A or D. A line starting with A represents the first type of update and ends with two space-separated encrypted∗ integers s′s' and t′t'. A line starting with D represents the second type of update and ends with an encrypted integer i′i'. It is guaranteed that there have been at least ii assignments added and that the ii-th assignment to be added has not been removed yet.

It is guaranteed that there is at least one homework assignment on your to-do list after every update.


∗Note that the input for this problem is encrypted. To decrypt and obtain the actual values of ss, tt, and ii, you may use the following formulas:

  • s=(s′+ans) mod (106+3)s = (s' + ans) \bmod (10^6 + 3)
  • t=(t′+ans) mod (106+3)t = (t' + ans) \bmod (10^6 + 3)
  • i=(i′+ans) mod (106+3)i = (i' + ans) \bmod (10^6 + 3)

Here, ansans represents the answer after the previous update and is initially 00 before any updates. It may also be useful to note that mod corresponds to the % operator in most programming languages, indicating the remainder after division. For example, 5 mod 3=25 \bmod 3 = 2 and 17 mod 4=117 \bmod 4 = 1.

출력

Output QQ lines, where the ii-th line contains the earliest time (in seconds) you can finish all of the homework assignments in your to-do list after the ii-th update.

예제2

  1. 예제 1

    입력
    6
    A 3 3
    A 2 0
    A 999996 999995
    D 999991
    A 1000000 999994
    D 999992
    
    예상 출력
    5
    11
    13
    11
    13
    9
    
  2. 예제 2

    입력
    2
    A 1000000 1000000
    A 4 4
    
    예상 출력
    1999999
    2999999