luogu#P8304. [CoE R4 D] 01 串

[CoE R4 D] 01 串

题目描述

定义一个好的 0101S\mathcal{S} 满足以下条件:

  • S\mathcal{S} 非空。

  • S\mathcal{S} 的任意一个前缀 S\mathcal {S}[1p](p[1, [1\dots p](p\in [1,|S\mathcal S])|]) 中,00 的数量都不多于 11 的数量。

  • S\mathcal{S} 的任意一个后缀 S\mathcal S[p[p\dots |S\mathcal{S}](p[1,|](p\in [1,|S\mathcal S])|]) 中,00 的数量都不多于 11 的数量。

现在你得到了一个长度为 nn0101T\mathcal{T},有 qq 次询问,每次询问给定一对 l,rl,r,求 T[lr]\mathcal{T}[l\dots r] 中的最长的好的 0101 子序列 的长度。若没有好的 0101 子序列,则输出 1-1

注意:子序列 是指去除某些元素但不破坏余下元素的相对位置而形成的新序列。

输入格式

第一行两个整数 n,qn,q,分别表示 0101 串的长度和询问次数。

第二行一个长度为 nn0101 串,表示 T\mathcal{T}

接下来 qq 行,每行两个整数 l,rl,r,表示一次询问。

输出格式

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

10 4
0100101011
1 1
1 5
2 9
1 10
-1
3
7
8

提示

样例解释

第一次询问中,询问的串为 00,没有任何的子序列是好的,所以答案是 1-1

第二次询问中,询问的串为 0100101001,子序列 101101 是好的且是最长的,所以答案是 33

第三次询问中,询问的串为 1001010110010101,子序列 10101011010101 是好的且是最长的,所以答案是 77

第四次询问中,询问的串为 01001010110100101011,子序列 1010101110101011 是好的且是最长的,所以答案是 88


数据规模

本题采用捆绑测试。

子任务 分值 nn \le qq \le
11 1010
22 2020 20002000
33 3030 8×1048\times 10^4
44 1010 10510^5 11
55 3030 5×1055\times 10^5

对于 100%100\% 的数据,1lrn5×1051 \leq l \leq r \leq n \leq 5 \times 10^51q5×1051 \leq q \leq 5 \times 10^5