CCCGuide

Problem S5: To-Do List

2025 · S5 · Original problem · DMOJ

Problem Description

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≤106)(1 \le s, t \le 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.

Input Specification

The first line of input contains an integer QQ.

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.

The following table shows how the available 1515 marks are distributed:

MarksBounds on QQAdditional constraints
221≤Q≤3 0001 \le Q \le 3 \, 000None
661≤Q≤1061 \le Q \le 10^6Only updates of the first type
771≤Q≤1061 \le Q \le 10^6None

*Note that the input for this problem is encrypted. To decrypt and obtain the actual values of s,t,s, t, and ii, you may use the following formulas: s=(s′+ans) mod (106+3)t=(t′+ans) mod (106+3)i=(i′+ans) mod (106+3) \begin{align*} s & = (s' + \text{ans}) \bmod (10^6+3)\\ t & = (t' + \text{ans}) \bmod (10^6+3)\\ i & = (i' + \text{ans}) \bmod (10^6+3) \end{align*} Here, ans\text{ans} 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 Specification

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.

Sample Input 1

6
A 3 3
A 2 0
A 999996 999995
D 999991
A 1000000 999994
D 999992

Sample Input 1 (Unencrypted)

6
A 3 3
A 7 5
A 4 3
D 1
A 8 2
D 2

Output for Sample Input 1

5
11
13
11
13
9

Explanation of Output for Sample Input 1

The unencrypted sample input is provided for ease of reference.

After the first update, we can start the first assignment at the beginning of second 33 and finish at the end of second 55 (interval [3,5][3, 5]).

After the second update, we can do the first assignment over the interval [3,5][3, 5] and the second assignment over the interval [7,11][7, 11].

After the third update, we can do the first assignment over the interval [3,5][3, 5], the third assignment over the interval [6,8][6, 8], and then the second assignment over the interval [9,13][9, 13].

After the fourth update, we can do the third assignment over the interval [4,6][4, 6] and the second assignment over the interval [7,11][7, 11].

After the fifth update, we can do the third assignment over the interval [4,6][4, 6], the second assignment over the interval [7,11][7, 11], and the fourth assignment over the interval [12,13][12, 13].

After the sixth update, we can do the third assignment over the interval [4,6][4, 6] and the fourth assignment over the interval [8,9][8, 9].

Sample Input 2

2
A 1000000 1000000
A 4 4

Sample Input 2 (Unencrypted)

2
A 1000000 1000000
A 1000000 1000000

Output for Sample Input 2

1999999
2999999