CF1062C.Banh-mi

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

JATC loves Banh-mi (a Vietnamese food). His affection for Banh-mi is so much that he always has it for breakfast. This morning, as usual, he buys a Banh-mi and decides to enjoy it in a special way.

First, he splits the Banh-mi into nn parts, places them on a row and numbers them from 11 through nn . For each part ii , he defines the deliciousness of the part as xi{0,1}x_i \in \{0, 1\} . JATC's going to eat those parts one by one. At each step, he chooses arbitrary remaining part and eats it. Suppose that part is the ii -th part then his enjoyment of the Banh-mi will increase by xix_i and the deliciousness of all the remaining parts will also increase by xix_i . The initial enjoyment of JATC is equal to 00 .

For example, suppose the deliciousness of 33 parts are [0,1,0][0, 1, 0] . If JATC eats the second part then his enjoyment will become 11 and the deliciousness of remaining parts will become [1,_,1][1, \_, 1] . Next, if he eats the first part then his enjoyment will become 22 and the remaining parts will become [_,_,2][\_, \_, 2] . After eating the last part, JATC's enjoyment will become 44 .

However, JATC doesn't want to eat all the parts but to save some for later. He gives you qq queries, each of them consisting of two integers lil_i and rir_i . For each query, you have to let him know what is the maximum enjoyment he can get if he eats all the parts with indices in the range [li,ri][l_i, r_i] in some order.

All the queries are independent of each other. Since the answer to the query could be very large, print it modulo 109+710^9+7 .

输入格式

The first line contains two integers nn and qq ( 1n,q1000001 \le n, q \le 100\,000 ).

The second line contains a string of nn characters, each character is either '0' or '1'. The ii -th character defines the deliciousness of the ii -th part.

Each of the following qq lines contains two integers lil_i and rir_i ( 1lirin1 \le l_i \le r_i \le n ) — the segment of the corresponding query.

输出格式

Print qq lines, where ii -th of them contains a single integer — the answer to the ii -th query modulo 109+710^9 + 7 .

输入输出样例

  • 输入#1

    4 2
    1011
    1 4
    3 4
    

    输出#1

    14
    3
    
  • 输入#2

    3 2
    111
    1 2
    3 3
    

    输出#2

    3
    1
    

说明/提示

In the first example:

  • For query 11 : One of the best ways for JATC to eats those parts is in this order: 11 , 44 , 33 , 22 .
  • For query 22 : Both 33 , 44 and 44 , 33 ordering give the same answer.

In the second example, any order of eating parts leads to the same answer.

首页