CF159C String Manipulation 1.0

题目描述

某著名网站开发了一种不同寻常的用户名编辑方式。用户只能通过删除某些字符来更改用户名:对于当前用户名 $s$,用户可以选择一个数字 $p$ 和一个字符 $c$,并删除用户名中第 $p$ 个出现的字符 $c$。用户名一旦更改,不能撤回。 例如,可以通过删除字符 "a" 的第二次出现,将用户名 "arca" 变为 "arc"。 Polycarpus 得知某位用户最初注册的用户名是 $t$,其中 $t$ 由 $k$ 个字符串 $s$ 拼接而成。同时,Polycarpus 还知道该用户所有的变更操作序列。请帮 Polycarpus 算出该用户所有变更后的最终用户名。

输入格式

第一行包含一个整数 $k$($1 \leq k \leq 2000$)。 第二行包含一个非空字符串 $s$,由小写拉丁字母组成,长度不超过 $100$。 第三行包含一个整数 $n$($0 \leq n \leq 20000$),表示变更操作的次数。 接下来的 $n$ 行,每行表示一次实际操作,格式为 "$p_{i}\ c_{i}$"(不带引号),其中 $p_{i}$($1 \leq p_{i} \leq 200000$)是字母 $c_{i}$ 出现的第 $p_{i}$ 次,$c_{i}$ 是小写拉丁字母。保证操作都是合法的,即被删除的字母总是在用户名中存在,且所有操作完成后用户名中至少剩下一个字母。 字母出现的次数从 1 开始编号。

输出格式

输出一行字符串,表示经过所有变更操作后的最终用户名。

说明/提示

我们来看第一个样例。初始用户名为 "bacbac";第一次操作后变为 "bacbc",第二次操作变为 "acbc",最后一次操作变为 "acb"。 由 ChatGPT 5 翻译