#HK4950. 「EGOI2023」通货膨胀

「EGOI2023」通货膨胀

题目描述

题目译自 European Girls' Olympiad in Informatics 2023 Day1 T1. Inflation

瑞典南部的人们爱吃法拉费(falafel),而法拉费的价格波动很大。分析经济状况的最佳方法是每天去同一家法拉费店,把菜单上所有菜品的价格加起来。

一家法拉费店的菜单上有 NN 种不同的菜品。第 ii 种菜品的价格为 pip_i

每天会发生以下两种事件之一:

  • INFLATION x:所有菜品的价格增加整数 xx
  • SET x y:所有价格为 xx 的菜品价格被设置为 yy

你的任务是处理 QQ 天的事件,并在每天结束后输出所有菜品价格 pip_i 的总和。

输入格式

第一行包含一个整数 NN,表示菜品种类数量。

第二行包含 NN 个整数 p1,p2,,pNp_1, p_2, \ldots, p_N,表示每种菜品的价格。

第三行包含一个整数 QQ,表示天数。

接下来的 QQ 行,每行包含一个字符串 ss,后跟一个或两个整数:

  • 如果 ssINFLATION,则后跟一个整数 xx,表示当天所有菜品价格增加 xx
  • 如果 ssSET,则后跟两个整数 xxyy,表示当天所有价格为 xx 的菜品价格被设置为 yy

输出格式

输出 QQ 行,每行包含一个整数,表示每天结束后所有菜品价格 pip_i 的总和。

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

此图对应于样例 1 的前两天。请注意,第一天之后的价格总和为 1616,因此输出中的第一个整数为 1616

inflation-sample-2.png

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

数据范围与提示

对于所有输入数据,满足:

  • 1N31051 \leq N \leq 3 \cdot 10^5
  • 1pi1061 \leq p_i \leq 10^6(对于每个 ii1iN1 \leq i \leq N
  • 1Q1051 \leq Q \leq 10^5
  • 对于每一天,1x,y1061 \leq x, y \leq 10^6

注意:答案可能超出 32 位整数范围,如果使用 C++,请注意溢出问题。

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 1414 N=1N=1
22 2828 N,Q,pi,x,y100N, Q, p_i, x, y \leq 100
33 1919 只有 INFLATION 事件
44 2323 只有 SET 事件
55 1616 无附加限制