#395. [R63E]这是一个01串题2

[R63E]这是一个01串题2

时空限制

1S/512M

题目描述

给定一个长度为 nn 的 01 串 ss。你可以进行若干次操作,每次选择一个字符将其翻转(即 0 变为 11 变为 0)。

对于一个非负整数 kk,设所有满足以下条件的字符串中,字典序最小的一个字符串为 tkt_k

  • tkt_k 可以由 ss 经过最多 kk 次上述操作得到。
  • tkt_k 中不存在相邻的两个字符 1

若无论如何操作都无法得到满足条件的字符串,则认为 tkt_k 不存在。

现在有 QQ 次询问,每次给出三个整数 k,l,rk, l, r。若 tkt_k 不存在,请输出 -1;否则请输出子串 tk[lr]t_k[l \dots r]1 的个数。

格式

输入格式

第一行包含两个正整数 nnQQ

第二行包含一个长度为 nn 的 01 串 ss

接下来 QQ 行,每行包含三个整数 ki,li,rik_i, l_i, r_i,表示一次询问。

输出格式

输出共 QQ 行,每行一个整数,依次表示每次询问的答案。

样例

样例输入 #1

6 4
111011
1 1 6
2 1 6
3 1 6
3 2 5

样例输出 #1

-1
3
2
1

数据规模

注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。

子任务编号 分数 nn\le QQ\le
11 2020 1515
22 3030 20002000
33 5050 2×1052\times 10^5

对于 100%100\% 的数据,1n,Q2×1051 \le n, Q \le 2 \times 10^5ss 是长度为 nn 的 01 串,0kin0 \le k_i \le n1lirin1 \le l_i \le r_i \le n