CF899F Letters Removing

题目描述

Petya 有一个长度为 $n$ 的字符串,其中包含大小写英文字母和数字。 他会进行 $m$ 次操作。每次操作由两个整数 $l$、$r$ 和一个字符 $c$ 描述:Petya 会将字符串中第 $l$ 位到第 $r$ 位之间(包括两端)所有等于 $c$ 的字符删除。可以看出,每次操作后字符串长度要么保持不变,要么减少。 请你求出 Petya 进行完所有 $m$ 次操作后,字符串会变成什么样。

输入格式

第一行包含两个整数 $n$ 和 $m$($1 \leq n, m \leq 2 \cdot 10^{5}$),分别表示字符串的长度和操作次数。 第二行是长度为 $n$ 的字符串,字符串只包含大小写英文字母和数字。字符串下标从 $1$ 开始。 接下来的 $m$ 行,每行包含两个整数 $l$、$r$($1 \leq l \leq r$),再跟一个字符 $c$,其中 $c$ 是一个小写或大写字母或数字。这一行描述了一次操作。保证当前操作前字符串的长度不少于 $r$。

输出格式

输出 Petya 完成所有 $m$ 次操作后的字符串。如果经过所有操作后字符串为空,则输出一个空行。

说明/提示

在第一个样例中,第一次操作会将两个字符 'a' 删除,字符串变为 "bc"。第二次操作会将第 $2$ 个位置上的 'c' 删除,字符串变为 "b"。 在第二个样例中,第一次操作 Petya 会删除第 $2$ 个位置上的 '0',字符串变为 "Az"。第二次操作字符串不会发生变化。 由 ChatGPT 5 翻译