#P10856. [POI2021 R3]Wybredny Bajtazar

[POI2021 R3]Wybredny Bajtazar

题目描述

题目译自 XXIX Olimpiada Informatyczna – III etap Wybredny Bajtazar

每年春天一到,Bajtazar 就开始琢磨如何用灯链装饰他的家迎接圣诞节。他拿出了那串陪伴多年的灯链,上面有 nn 个灯泡,每盏灯泡有五种颜色之一,用字母 a\texttt{a}e\texttt{e} 表示。为了让灯链焕然一新,他开始调整每个灯泡的颜色。

调整的过程是这样的:Bajtazar 选定两种颜色 aabb,以及一个正整数 pp,然后将从左边数起的前 pp 个颜色为 aa 的灯泡替换成颜色 bb

由于他计划进行多次调整,他请你帮忙编写一个程序,展示在 mm 次调整后灯链的样子。

输入格式

输入的第一行包含两个整数 nnmm (1n,m1000000)(1 \leq n, m \leq 1000000),分别表示灯链中灯泡的数量和颜色调整的次数。第二行是一个长度为 nn 的字符串,由小写字母 a\texttt{a}e\texttt{e} 组成,表示灯链上各灯泡的初始颜色。

接下来的 mm 行描述颜色调整操作,每行包含一个正整数 pip_{i} 和两个不同的小写字母 aia_{i}bib_{i},用单个空格分隔,表示将前 pip_{i} 个颜色为 aia_{i} 的灯泡改为颜色 bib_{i}。你可以假设每次操作前,灯链中至少有 pip_{i} 个颜色为 aia_{i} 的灯泡。

输出格式

输出一行,包含一个长度为 nn 的字符串,由字母 a\texttt{a}e\texttt{e} 组成,表示所有调整操作完成后灯链上各灯泡的颜色。

10 3
acabbabbac
3 b c
4 a b
3 c a

babaabcbbc

样例 2

见附加文件下 [wyb1ocen.in](file:wyb1ocen.in) 和 [wyb1ocen.out](file:wyb1ocen.out)。

该样例满足 n=1000,m=1000n=1000, m=1000,初始灯链为 ababab...ab\texttt{ababab...ab},操作交替进行:将前 250 个 a 改为 b,再将前 250 个 b 改为 a;

样例 3

见附加文件下 [wyb2ocen.in](file:wyb2ocen.in) 和 [wyb2ocen.out](file:wyb2ocen.out)。

该样例满足 n=90000,m=100000n=90000, m=100000,初始灯链为 aaa...abbb...bccc...c\texttt{aaa...abbb...bccc...c}(每种颜色连续 3000030000 个),操作循环进行:将前 1000010000a\texttt{a} 改为 b\texttt{b},前 1000010000a\texttt{a} 改为 c\texttt{c},前 1000010000b\texttt{b} 改为 a\texttt{a},前 1000010000c\texttt{c} 改为 a\texttt{a}

样例 4

见附加文件下 [wyb3ocen.in](file:wyb3ocen.in) 和 [wyb3ocen.out](file:wyb3ocen.out)。

该样例满足 n=1000000,m=1000000n=1000000, m=1000000,初始灯链为 abcde\texttt{abcde} 重复 200000200000 次,操作按颜色循环 $\texttt{a} \to \texttt{b} \to \texttt{c} \to \texttt{d} \to \texttt{e} \to \texttt{a}$,逐步增加调整的灯泡数量。

数据范围与提示

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

子任务编号 附加限制 分值
11 n100000,m100n \leq 100000, m \leq 100 1717
22 n,m100000n, m \leq 100000 1818
33 灯链始终只含 a 或 b 2929
44 灯链始终只含 a、b 或 c 1717
55 无附加限制 1919