Good Bye 2016
E
New Year and Old Subsequence
Codeforces
2600
原题
← DF →
翻译中…

A string $*t*$ is called nice if a string "2017" occurs in $*t*$ as a subsequence but a string "2016" doesn't occur in $*t*$ as a subsequence. For example, strings "203434107" and "9220617" are nice, while strings "20016", "1234" and "20167" aren't nice.

翻译中…

The ugliness of a string is the minimum possible number of characters to remove, in order to obtain a nice string. If it's impossible to make a string nice by removing characters, its ugliness is $- 1$.

翻译中…

Limak has a string $*s*$ of length $*n*$, with characters indexed $1$ through $*n*$. He asks you $*q*$ queries. In the $*i*$-th query you should compute and print the ugliness of a substring (continuous subsequence) of $*s*$ starting at the index $*a*_{*i*}$ and ending at the index $*b*_{*i*}$ (inclusive).

翻译中…

Input

翻译中…

The first line of the input contains two integers $*n*$ and $*q*$ ($4 ≤ *n* ≤ 200 000$, $1 ≤ *q* ≤ 200 000$) — the length of the string $*s*$ and the number of queries respectively.

翻译中…

The second line contains a string $*s*$ of length $*n*$. Every character is one of digits '0'–'9'.

翻译中…

The $*i*$-th of next $*q*$ lines contains two integers $*a*_{*i*}$ and $*b*_{*i*}$ ($1 ≤ *a*_{*i*} ≤ *b*_{*i*} ≤ *n*$), describing a substring in the $*i*$-th query.

翻译中…

Output

翻译中…

For each query print the ugliness of the given substring.

翻译中…

Note

翻译中…

In the first sample:

翻译中…
  • In the first query, $*ugliness*($"20166766"$) = 4$ because all four sixes must be removed.
  • In the second query, $*ugliness*($"2016676"$) = 3$ because all three sixes must be removed.
  • In the third query, $*ugliness*($"0166766"$) = - 1$ because it's impossible to remove some digits to get a nice string.
翻译中…

In the second sample:

翻译中…
  • In the second query, $*ugliness*($"01201666209167"$) = 2$. It's optimal to remove the first digit '2' and the last digit '6', what gives a string "010166620917", which is nice.
  • In the third query, $*ugliness*($"016662091670"$) = 1$. It's optimal to remove the last digit '6', what gives a nice string "01666209170".
翻译中…

样例

Input #1
8 3
20166766
1 8
1 7
2 8
Output #1
4
3
-1
InputCopy OutputCopy
Input #2
15 5
012016662091670
3 4
1 14
4 15
1 13
10 15
Output #2
-1
2
1
-1
-1
InputCopy OutputCopy
Input #3
4 2
1234
2 4
1 2
Output #3
-1
-1
InputCopy OutputCopy
题目信息
题号
750E
所属比赛
时间限制
3 s
内存限制
256 MB
标签
数据结构
分治
动态规划
矩阵

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。