SP25482 TAP2015K - Kimetto Kipsang and Kipchoge

题目描述

由于 SPOJ 的限制,本题相较于 2015 年阿根廷编程锦标赛的原版进行了修改,以便在每个输入文件中包含多个测试用例。如需查看此问题的原西班牙语版本,请访问 。 肯尼亚是世界上一些最杰出的长跑运动员的发源地。在最近的十场马拉松比赛的最佳成绩中,有八次由来自该国的选手创下。丹尼斯·基梅托、威尔逊·基普桑和埃利德·基普乔格就是这样的运动员,他们希望在即将到来的柏林马拉松(9月27日)中再度刷新世界纪录。 基梅托、基普桑和基普乔格是好友,他们喜欢沿着塔纳河一起训练,享受沿途优美的树木风景。河边共有 $N$ 棵树,编号从 $1$ 到 $N$。第 $i$ 树的种类为 $S_i$,并且距离河口 $i$ 米。三位选手对看到多种不同树木的景象情有独钟。因此,他们每天训练开始时,会从编号为 $K$ 的树出发,朝向下游(即向编号为 $K-1$, $K-2$ 等的树跑去),直到看到当天已见过的某种类树木或者到达河口为止。 例如,有 $N = 4$ 棵树,种类分别为 $S_1 = 1$,$S_2 = 2$,$S_3 = 1$,$S_4 = 3$。如果他们选择从 $K = 4$ 开始训练,他们会一直跑到编号为 $1$ 的树,跑了 $3$ 米(因为这棵树与第 $3$ 树是相同种类)。然而,如果他们从 $K = 2$ 开始,则会直接跑到河口,共跑了 $2$ 米,因为途中没有遇到两棵相同种类的树。 长跑训练需要多年积累,在此期间一些树木可能会因风暴而倒下,并且倒下的树会立刻被新树替代,新树不一定和旧树种类相同。基梅托、基普桑和基普乔格将所有的训练信息记录在一本日记中。他们清楚每棵树的种类,以及每天训练从哪棵树开始。你能帮他们计算每次训练跑了多少米吗?

输入格式

输入文件包含多个测试用例。对于每个测试用例,第一行包括两个整数 $N$ 与 $R$,分别代表河边树木的总数和日记中的条目数($1 \le N, R \le 10^5$)。第二行有 $N$ 个整数 $S_i$,表示初始时第 $i$ 棵树的种类($1 \le S_i \le 10^5$,$i = 1, 2, \ldots, N$)。接下来的 $R$ 行描述日记中的条目,按时间顺序排列。条目以字符开头,若为 'C' 表示树木倒下,若为 'E' 表示训练日。对 'C',后跟两个整数 $K$ 和 $S$,表示第 $K$ 棵树倒下并换成种类为 $S$ 的新树($1 \le K \le N$,$1 \le S \le 10^5$)。对 'E',后跟一个整数 $K$,表示从第 $K$ 棵树开始训练($1 \le K \le N$)。每个测试用例中至少有一个训练日的条目。

输出格式

对于每个测试用例,针对每个训练日的条目,输出一行,表示基梅托、基普桑和基普乔格当天训练跑了多少米。 **本翻译由 AI 自动生成**