CF750E.New Year and Old Subsequence
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
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 ai and ending at the index bi (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 ai and bi ( 1<=ai<=bi<=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
说明/提示
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".