Problem C
Inflation
People in southern Sweden are known to eat falafel a lot. The price of falafel is highly volatile, and the best way to analyze the state of the economy is to go to the same falafel place every day and add up all the prices on their menu.
A falafel place has $N$ different dishes on their menu. The $i$th dish has price $p_ i$.
Every day, one of the following events happen:
-
INFLATION x: The integer $x$ is added to all prices.
-
SET x y: Every dish with price $x$ gets its price set to $y$.
Your task is to process $Q$ days, and after each day print the sum of all prices $p_ i$.
Input
The first line contains one integer $N$, the number of dishes.
The second line contains $N$ integers $p_1, p_2, \ldots , p_ N$.
The third line contains one integer $Q$, the number of days.
The following $Q$ lines each contain a string $s$ followed by either one or two integers.
If $s$ is INFLATION, then one integer $x$ follows. This means that $x$ is added to all prices on this day.
If $s$ is SET, then two integers $x$ and $y$ follow. This means that all dishes with price $x$ get their price set to $y$ on this day.
Output
Print $Q$ lines, the sum of all prices $p_ i$ after each day.
Constraints and Scoring
-
$1 \leq N \leq 3 \cdot 10^5$.
-
$1 \leq p_ i \leq 10^6$ (for each $i$ such that $1 \leq i \leq N$).
-
$1 \leq Q \leq 10^5$.
-
$1 \leq x,y \leq 10^6$ for all days.
Note: The answer may not fit in a $32$-bit integer, so be aware of overflows if you are using C++.
Your solution will be tested on a set of test groups, each worth a number of points. Each test group contains a set of test cases. To get the points for a test group you need to solve all test cases in the test group.
Group |
Score |
Limits |
1 |
14 |
$N=1$ |
2 |
28 |
$N, Q, p_ i, x, y \leq 100$ |
3 |
19 |
There are only INFLATION events |
4 |
23 |
There are only SET events |
5 |
16 |
No additional constraints |
Example
This figure corresponds to the first two days of sample $1$. Note that the sum of prices after the first day is $16$, so the first integer in the output is $16$.
Sample Input 1 | Sample Output 1 |
---|---|
5 2 1 1 2 5 6 INFLATION 1 SET 3 2 SET 5 2 INFLATION 4 SET 6 1 SET 10 1 |
16 14 14 34 14 5 |
Sample Input 2 | Sample Output 2 |
---|---|
3 1 4 1 5 SET 1 1 SET 3 4 INFLATION 2 SET 3 1 SET 6 4 |
6 6 12 8 6 |