AT_past202004_g ストリング・クエリ

题目描述

对字符串 $S$ 进行 $Q$ 次操作。初始时,字符串 $S$ 为空字符串。 第 $i$ 次操作的类型由整数 $T_i\ (1\leq i\leq Q)$ 表示,具体内容如下: - 当 $T_i=1$ 时: - 给定一个小写英文字母 $C_i$ 和一个整数 $X_i$。在 $S$ 的末尾添加 $X_i$ 个 $C_i$ 字符。 - 当 $T_i=2$ 时: - 给定一个整数 $D_i$。从 $S$ 的开头删除 $D_i$ 个字符。如果 $S$ 的长度不超过 $D_i$,则 $S$ 变为空字符串。对于本次操作,统计 `a`、`b`、`c`、$\cdots$、`z` 各字符被删除的数量。若分别删除了 $del_a,\ del_b,\ \cdots,\ del_z$ 个,则输出 $del_a^2+del_b^2+\cdots+del_z^2$。

输入格式

输入通过标准输入给出,格式如下: > $Q$ > $Query_1$ > $\vdots$ > $Query_Q$ 第 $2$ 行到第 $Q+1$ 行的 $Query_i$ 有以下两种形式之一: > $1\ C_i\ X_i$ 表示执行 $T_i=1$ 的操作。 > $2\ D_i$ 表示执行 $T_i=2$ 的操作。

输出格式

对于每个 $T_i=2$ 的操作,按顺序输出每种字符被删除数量的平方和。

说明/提示

### 注意 本题在 2020 年 5 月 2 日 18:00 JST 之前禁止公开讨论。如有违规,可能会被追究责任。 考试结束后可以公开总分和认证级别,但请不要透露解题情况等信息。 ### 约束条件 - $1\leq Q\leq 10^5$ - $T_i=1$ 或 $2$ - $C_i$ 为小写英文字母 - $1\leq X_i\leq 10^5$ - $1\leq D_i\leq 10^5$ - $Q,\ T_i,\ X_i,\ D_i$ 均为整数 - 至少存在一次 $T_i=2$ 的操作 ### 样例解释 1 初始 $S$ 为空字符串。 - 第 1 次操作后,$S$ 变为 `aaaaa`。 - 第 2 次操作后,$S$ 变为 `aa`。删除了 $3$ 个 `a`,其他字符未被删除。 - 第 3 次操作后,$S$ 变为 `aatttttttt`。 - 第 4 次操作后,$S$ 变为 `aattttttttcccccccccc`。 - 第 5 次操作前,$S$ 长度为 $20$,操作后 $S$ 变为空字符串。删除了 $2$ 个 `a`,$10$ 个 `c`,$8$ 个 `t`。 - 第 6 次操作后,$S$ 仍为空字符串,没有字符被删除。 因此,第 2 次操作输出 $3^2+0^2+\cdots+0^2=9$,第 5 次操作输出 $2^2+10^2+8^2=168$,第 6 次操作输出 $0$。 ### 样例解释 2 初始 $S$ 为空字符串。 - 第 1 次操作后,$S$ 变为 `xxxxx`。 - 第 2 次操作后,$S$ 变为 `xxxxxyyyyyyyy`。 - 第 3 次操作后,$S$ 变为 `yyyyyy`。删除了 $5$ 个 `x`,$2$ 个 `y`,$5^2+2^2=29$。 - 第 4 次操作后,$S$ 变为 `yyyyyyzzzzzzzz`。 由 ChatGPT 4.1 翻译