CF750E.New Year and Old Subsequence

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

A string tt is called nice if a string "2017" occurs in tt as a subsequence but a string "2016" doesn't occur in tt 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-1 .

Limak has a string ss of length nn , with characters indexed 11 through nn . He asks you qq queries. In the ii -th query you should compute and print the ugliness of a substring (continuous subsequence) of ss starting at the index aia_{i} and ending at the index bib_{i} (inclusive).

输入格式

The first line of the input contains two integers nn and qq ( 4<=n<=2000004<=n<=200000 , 1<=q<=2000001<=q<=200000 ) — the length of the string ss and the number of queries respectively.

The second line contains a string ss of length nn . Every character is one of digits '0'–'9'.

The ii -th of next qq lines contains two integers aia_{i} and bib_{i} ( 1<=ai<=bi<=n1<=a_{i}<=b_{i}<=n ), describing a substring in the ii -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(ugliness( "20166766" )=4)=4 because all four sixes must be removed.
  • In the second query, ugliness(ugliness( "2016676" )=3)=3 because all three sixes must be removed.
  • In the third query, ugliness(ugliness( "0166766" )=1)=-1 because it's impossible to remove some digits to get a nice string.

In the second sample:

  • In the second query, ugliness(ugliness( "01201666209167" )=2)=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(ugliness( "016662091670" )=1)=1 . It's optimal to remove the last digit '6', what gives a nice string "01666209170".
首页