A59010.午枫的字符串修改

普及/提高-

官方

通过率:0%

时间限制:1.00s

内存限制:256MB

题目描述

定义 M(c,x)M(c,x) 为将字符 cc 循环右移后得到的字符,例如 M(b,2)=dM(b,2)=dM(x,4)=bM(x,4)=b

再定义 C(t,x)C(t,x) 为将字符串 tt 向右循环移动后得到的字符串,例如 C(abc,1)=cabC(abc,1)=cabC(abcde,4)=bcdeaC(abcde,4)=bcdea

小枫又有一个长度为 nn 的字符串 ss ,小午又把小枫的字符串修改了,这次小午对小枫的字符串修改了 qq 次,每次修改会进行以下操作中的一种:

  • 选择三个正整数 l,rl,r (1lrn)(1\leq l\leq r\leq n)xx ,设当前字符串为 tt ,将 tl,tl+1,,trt_l,t_{l+1},\dots ,t_r 变为 M(ti,x)M(t_i,x)
  • 选择一个正整数 xx ,将当前字符串 tt 变为 C(t,x)C(t,x)

小枫想知道最后字符串会变成什么样子。

输入格式

第一行输入一个正整数 nn (1n106)(1\leq n \leq10^6) ,表示字符串长度。

第二行输入一个长度为 nn 的字符串 ss ,表示初始字符串,保证 ss 只包含小写英文字母。

第三行输入一个正整数 qq (1q2×105)(1\leq q\leq 2\times 10^5) ,表示操作次数。

接下来 qq 行,每行先输入一个正整数 opop (op{1,2})(op\in\{1,2\})

op=1op=1 ,接下来输入三个正整数 l,r,xl,r,x (1lrn,1x109)(1\leq l\leq r\leq n,1\leq x\leq10^9) ,意义同题面所述;

op=2op=2 ,接下来输入一个正整数 xx (1x109)(1\leq x\leq 10^9) ,意义同题面所述。

输出格式

输出一行一个字符串,表示 qq 次操作后得到的最终字符串。

输入输出样例

  • 输入#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

首页