#aBC314C. [ABC314C] Rotate Colored Subsequence

[ABC314C] Rotate Colored Subsequence

AT_abc314_c [ABC314C] Rotate Colored Subsequence

题目描述

给定一个由小写英文字母组成、长度为 NN 的字符串 SSSS 的每个字符都被涂上了 MM 种颜色中的一种,分别为颜色 11、颜色 22\ldots、颜色 MM。对于 i=1,2,,Ni = 1, 2, \ldots, NSS 的第 ii 个字符被涂上了颜色 CiC_i

对于每个 i=1,2,,Mi = 1, 2, \ldots, M,按此顺序进行如下操作:

  • SS 中所有被颜色 ii 涂色的字符部分,向右循环平移 11 位。也就是说,假设 SS 中被颜色 ii 涂色的字符的位置依次为 p1,p2,p3,,pkp_1, p_2, p_3, \ldots, p_k,则将 SS 的第 p1,p2,p3,,pkp_1, p_2, p_3, \ldots, p_k 个字符,分别同时替换为 SS 的第 pk,p1,p2,,pk1p_k, p_1, p_2, \ldots, p_{k-1} 个字符。

请输出经过上述所有操作后的最终字符串 SS

保证对于所有颜色 1iM1 \leq i \leq M,都至少有一个字符被该颜色涂色。

输入格式

输入按以下格式从标准输入读入。

NN MM SS C1C_1 C2C_2 \ldots CNC_N

输出格式

请输出答案。

输入输出样例 #1

输入 #1

8 3
apzbqrcs
1 2 3 1 2 2 1 2

输出 #1

cszapqbr

输入输出样例 #2

输入 #2

2 1
aa
1 1

输出 #2

aa

说明/提示

限制条件

  • 1MN2×1051 \leq M \leq N \leq 2 \times 10^5
  • 1CiM1 \leq C_i \leq M
  • N,M,CiN, M, C_i 均为整数
  • SS 是由小写英文字母组成的长度为 NN 的字符串
  • 对于任意整数 1iM1 \leq i \leq M,都存在某个整数 1jN1 \leq j \leq N 使得 Cj=iC_j = i

样例解释 1

初始时,S=S = apzbqrcs

  • 对于 i=1i = 1 的操作,将 SS 的第 1,4,71, 4, 7 个字符组成的部分向右循环平移 11 位。结果为 S=S = cpzaqrbs
  • 对于 i=2i = 2 的操作,将 SS 的第 2,5,6,82, 5, 6, 8 个字符组成的部分向右循环平移 11 位。结果为 S=S = cszapqbr
  • 对于 i=3i = 3 的操作,将 SS 的第 33 个字符组成的部分向右循环平移 11 位。操作前后 SS 不变,仍为 cszapqbr

因此,最终的 SScszapqbr,输出该字符串。

由 ChatGPT 4.1 翻译