A59010.午枫的字符串修改
普及/提高-
官方
通过率:0%
时间限制:1.00s
内存限制:256MB
题目描述
定义 M(c,x) 为将字符 c 循环右移后得到的字符,例如 M(b,2)=d ,M(x,4)=b 。
再定义 C(t,x) 为将字符串 t 向右循环移动后得到的字符串,例如 C(abc,1)=cab ,C(abcde,4)=bcdea 。
小枫又有一个长度为 n 的字符串 s ,小午又把小枫的字符串修改了,这次小午对小枫的字符串修改了 q 次,每次修改会进行以下操作中的一种:
- 选择三个正整数 l,r (1≤l≤r≤n) 和 x ,设当前字符串为 t ,将 tl,tl+1,…,tr 变为 M(ti,x) ;
- 选择一个正整数 x ,将当前字符串 t 变为 C(t,x) 。
小枫想知道最后字符串会变成什么样子。
输入格式
第一行输入一个正整数 n (1≤n≤106) ,表示字符串长度。
第二行输入一个长度为 n 的字符串 s ,表示初始字符串,保证 s 只包含小写英文字母。
第三行输入一个正整数 q (1≤q≤2×105) ,表示操作次数。
接下来 q 行,每行先输入一个正整数 op (op∈{1,2}) ,
若 op=1 ,接下来输入三个正整数 l,r,x (1≤l≤r≤n,1≤x≤109) ,意义同题面所述;
若 op=2 ,接下来输入一个正整数 x (1≤x≤109) ,意义同题面所述。
输出格式
输出一行一个字符串,表示 q 次操作后得到的最终字符串。
输入输出样例
输入#1
5 aaaaa 5 1 1 5 2 2 4 1 2 3 1 2 3 1 4 5 3
输出#1
dccfg
说明/提示
第一次操作后,字符串变为 ccccc
。
第二次操作后,字符串变为 ccccc
。
第三次操作后,字符串变为 cddcc
。
第四次操作后,字符串变为 dcccd
。
第五次操作后,字符串变为 dccfg
。