时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
给你一个仅有小写字母组成且长度为n的字符串a以及m条指令。
指令有以下两种类型:
-
1 l r ,查询区间[l,r]中最长连续相同字符串并输出该字符串的左右边界,如果有多个,输出左边界最小的那个
-
2 x ch,将a[x]改为ch,字符串下标从1开始
输入描述:
第一行两个正整数n和m。(1

n,m

1e5)
第二行一个长度为n的字符串a,a仅有小写字母构成
接下来m行,每行一条指令,每行首先有一个整数op,表示操作的类型。
1.若op = 1,则接下来有两个整数l,r,表示查询区间[l,r]内最长连续相同字符串。
2.若op = 2,则接下来有一个正整数x和一个字符ch,表示将字符串中下标为x的字符修改为ch
输出描述:
对于每个查询指令,输出两个整数,代表区间的左右边界
每个答案占一行
示例1
输入
复制
10 3
aabbbccdde
1 1 5
2 3 a
1 1 5