2290. Day8 G - 更快的排序

Know your data, and you can break the rules. —— Jon Bentley

一般地,排序的平均复杂度不可能低于 O(nlogn),但通过 D 题和 F 题的学习,我们了解到,在一些特定情况下,我们可以做得更好

没力气编题面了,大概也没有人会做到这题吧?

给定一个长度为 n 的数组 a,仅由 01 组成,下标 1 起。

现在,对该数组进行 q 次操作,每次操作给定操作数 opr, l, r

  • 操作一:当 opr = 1 时,排序数组的 [l, r] 区间,使其单增

  • 操作二:当 opr = 2 时,排序数组的 [l, r] 区间,使其单减

每次操作后,输出 \sum_{i = l}^{r}a_i

输入

第一行输入两个正整数 n, q (1 \le n, q \le 10^5),表示数组长度和操作次数

第二行输入一个长度为 n01 串,表示数组 a

接下来 q 行,每行三个由空格分隔的正整数 opr, l, r (opr \in {1, 2};1 \le l \le r \le n)

输出

输出 q 行,每行一个整数,表示每次询问的答案

样例

标准输入 复制文本
16 10
1001101000101100
2 1 15
1 9 15
2 6 9
2 7 11
2 6 9
2 5 5
2 13 15
2 2 13
2 8 10
1 6 11
标准输出 复制文本
7
0
2
1
2
1
0
6
0
2
登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 20
通过 5