题库练习 New Year and Old Subsequence
← 上一题 下一题 →

A10705 | New Year and Old Subsequence

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

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).

输入格式

The first line of the input contains two integers $n$ and $q$ ( $4<=n<=200000$ , $1<=q<=200000$ ) — 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.

输出格式

For each query print the ugliness of the given substring.

输入输出样例

输入 #1
8 3
20166766
1 8
1 7
2 8
输出 #1
4
3
-1
输入 #2
15 5
012016662091670
3 4
1 14
4 15
1 13
10 15
输出 #2
-1
2
1
-1
-1
输入 #3
4 2
1234
2 4
1 2
输出 #3
-1
-1
C++ 编辑器
输入
输出