#P15620. [ICPC 2022 Jakarta R] Substring Sort

[ICPC 2022 Jakarta R] Substring Sort

说明

在本问题中,所有字符串的下标均从 11 开始。令 sis_i 表示字符串 ss 的第 ii 个字符。令 sl..rs_{l..r} 表示 ss 的一个子串,包含字符 slsl+1srs_l s_{l+1} \cdots s_r

给定三个长度均为 NN 的字符串:AABBCC。要求你按照给定的顺序模拟 QQ 次查询。

对于每次查询,你会得到两个整数 llrr 作为参数,并必须执行以下步骤:

  1. 复制子串 Al..rA_{l..r}Bl..rB_{l..r}Cl..rC_{l..r}。令 xxyyzz 分别为复制得到的子串。
  2. [x,y,z][x, y, z] 按字典序排序。令 [x,y,z][x', y', z'] 为排序后的结果。
  3. 分别用 xx' 替换子串 Al..rA_{l..r},用 yy' 替换子串 Bl..rB_{l..r},用 zz' 替换子串 Cl..rC_{l..r}

请确定所有查询完成后 AABBCC 的值。

输入格式

输入以两个整数 NN QQ1N1000001 \leq N \leq 100\,0001Q1000001 \leq Q \leq 100\,000)开始,分别表示给定字符串的长度和查询次数。接下来的 33 行,每行包含一个长度为 NN 的字符串。第一行、第二行和第三行分别包含 AABBCC。字符串仅由小写字母组成。接下来的 QQ 行,每行包含两个整数 ll rr1lrN1 \leq l \leq r \leq N),表示每次查询的参数。

输出格式

输出包含 33 行。每行按顺序输出所有查询完成后 AABBCC 的最终值。

5 2
icpca
siaja
karta
2 4
1 5
iarta
kiaja
scpca
6 6
aabbcc
bcacab
cbcaba
1 1
2 2
3 3
4 4
5 5
6 6
aaaaaa
bbbbbb
cccccc
3 1
aba
aab
aac
1 3
aab
aac
aba

提示

样例输入/输出 #1 的解释

在第一次查询中,xxyyzz 的值分别为 cpc、iaj、art。将这些字符串排序后,xx'yy'zz' 的值变为 art、cpc、iaj。第一次查询结束时,AABBCC 的值分别为 iarta、scpca 和 kiaja。

在第二次查询中,xxyyzz 的值分别为 iarta、scpca、kiaja。将这些字符串排序后,xx'yy'zz' 的值变为 iarta、scpca、kiaja。第二次查询结束时,AABBCC 的值分别为 iarta、kiaja 和 scpca。

因此,AABBCC 的最终值分别为 iarta、kiaja 和 scpca。

翻译由 DeepSeek 完成