#P6373. 「StOI-1」IOI计数

「StOI-1」IOI计数

题目背景

蒻L_C_A想了解一下IOI,可他太菜了,看不懂题目,只会数数。

题目描述

给定一个长度为 nn 字符串 SS ,同时进行 mm 次操作:
操作1:11 xx cc 表示将第 xx 个字符改为 cc( cc 只会为 I 或 O )。
操作2:22 ll rr 询问字符串 SS 中有多少对三元组 (i,j,k)(i,j,k) 满足:
Si=S_{i}= I ,Sj=S_{j}= O ,Sk=S_{k}= I 并且 l≤i<j<k≤rl≤i<j<k≤r 。

输入格式

输入第一行两个正整数 nn 和 mm 。
接下来一行是长度为 nn 的字符串 ss ,接下来 mm 行是操作。
含义均如题。

输出格式

输出若干行:对于所有操作2,输出查询的答案,要求每个答案之间换行。

4 3
IOOI
2 1 4
1 1 O
2 1 2
2
0
10 10
IIOOIOIIIO
1 1 I
2 1 7
1 5 O
2 5 9
1 4 I
1 10 I
2 1 10
2 5 10
2 2 8
2 3 9
11
0
34
0
11
6

提示

对于 2020% 的数据:1≤n,m≤1001 ≤ n,m ≤ 100,1≤l≤r≤n1 ≤ l ≤ r ≤ n;
对于另 2020% 的数据:1≤n≤1 ≤ n ≤ 10510^{5},m=1m = 1,1≤l≤r≤n 1 ≤ l ≤ r ≤ n;
对于另 2020% 的数据:1≤n,m≤1 ≤ n,m ≤ 10510^{5},l=1,r=nl=1,r=n;
对于 100100% 的数据:1≤n,m≤1 ≤ n,m ≤ 55 ×\times 10510^{5},1≤l≤r≤n1 ≤ l ≤ r ≤ n。

所有数据保证合法。