#E. 旋转带色字符串

    Type: Default 1000ms 256MiB

旋转带色字符串

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目背景

如果你前面的题都AC了,那说明你的基础很扎实!👍 👍 🚀️

题目描述

给定一个只包含小写字母的长度为 NN 的字符串 SS,以及 MM 种不同的颜色(编号依次为1、2、……、MM),为 SS 的每个字符染上其中一种颜色,第 ii 个字符的颜色记为 CiC_i

现在按照 i=1,2,,Mi=1,2,\cdots,M 的顺序,依次执行 MM 次以下操作:

  • SS 中染上颜色 ii 的部分,循环右移一个单位。即,若 SS 中被染成颜色 ii 的字符从左到右依次为 p1,p2,p3,,pkp_1,p_2,p_3,\cdots,p_k,那么把这些字符分别替换成 pk,p1,p2,,pk1p_k,p_1,p_2,\cdots,p_{k-1}

求出执行完以上所有操作后最终的 SS。数据保证字符串 SS 包含了 MM 种颜色,即对于每种颜色,SS 中都至少有一个字符被染成该色。

输入格式

三行。第一行为两个整数,分别是 NMN、M,第二行为字符串 SS,第三行为 NN 个数 C1,C2,,CNC_1,C_2,\cdots,C_N

输出格式

一个字符串,表示最终的 SS


样例1

8 3
apzbqrcs
1 2 3 1 2 2 1 2
cszapqbr

样例说明1

初始时,SS = apzbqrcs

  • i=1i=1 时,把颜色为 1 的第 1、4、7 个字符循环右移一个单位,得到 SS = cpzaqrbs
  • i=2i=2 时,把颜色为 2 的第 2、5、6、8 个字符循环右移一个单位,得到 SS = cszapqbr
  • i=3i=3 时,把颜色为 3 的第 3 个字符循环右移一个单位(未发生改变),得到 SS = cszapqbr

因此输出的最终结果就是 cszapqbr


样例2

2 1
aa
1 1
aa

数据约束

  • 1MN2×1051\le M \le N \le 2\times 10^5
  • 1CiM1 \le C_i \le M
  • SS 中只有小写字母。
  • 对于每个整数 i(1iM)i(1\le i \le M),一定存在整数 j(1jN)j(1\le j \le N) 使得 Cj=iC_j=i

C23天河C班冬至暖暖练习赛

Not Attended
Status
Done
Rule
IOI
Problem
5
Start at
2023-12-22 18:30
End at
2023-12-22 20:30
Duration
2 hour(s)
Host
Partic.
11