EGOI '23 P1 - Inflation

View as PDF

Submit solution

Points: 7 (partial)
Time limit: 3.0s
Memory limit: 1G

Problem type
European Girls' Olympiad in Informatics: 2023 Day 1 Problem 1

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:

  1. INFLATION x: The integer x is added to all prices.
  2. 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 Specification

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 Specification

Print Q lines, the sum of all prices p_i after each day.

Constraints and Scoring

  • 1 \leq N \leq 3 \times 10^5.
  • 1 \leq p_i \leq 10^6 (for each i).
  • 1 \le Q \le 10^5.
  • 1 \le x, y \le 10^6.

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 \le 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

5
2 1 1 2 5
6
INFLATION 1
SET 3 2
SET 5 2
INFLATION 4
SET 6 1
SET 10 1

Sample Output 1

16
14
14
34
14
5

Sample Input 2

3
1 4 1
5
SET 1 1
SET 3 4
INFLATION 2
SET 3 1
SET 6 4

Sample Output 2

6
6
12
8
6

Comments

There are no comments at the moment.