CF1383E.Strange Operation

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Koa the Koala has a binary string ss of length nn . Koa can perform no more than n1n-1 (possibly zero) operations of the following form:

In one operation Koa selects positions ii and i+1i+1 for some ii with 1i<s1 \le i < |s| and sets sis_i to max(si,si+1)max(s_i, s_{i+1}) . Then Koa deletes position i+1i+1 from ss (after the removal, the remaining parts are concatenated).

Note that after every operation the length of ss decreases by 11 .

How many different binary strings can Koa obtain by doing no more than n1n-1 (possibly zero) operations modulo 109+710^9+7 ( 10000000071000000007 )?

输入格式

The only line of input contains binary string ss ( 1s1061 \le |s| \le 10^6 ). For all ii ( 1is1 \le i \le |s| ) si=0s_i = 0 or si=1s_i = 1 .

输出格式

On a single line print the answer to the problem modulo 109+710^9+7 ( 10000000071000000007 ).

输入输出样例

  • 输入#1

    000

    输出#1

    3
  • 输入#2

    0101

    输出#2

    6
  • 输入#3

    0001111

    输出#3

    16
  • 输入#4

    00101100011100

    输出#4

    477

说明/提示

In the first sample Koa can obtain binary strings: 00 , 0000 and 000000 .

In the second sample Koa can obtain binary strings: 11 , 0101 , 1111 , 011011 , 101101 and 01010101 . For example:

  • to obtain 0101 from 01010101 Koa can operate as follows: 01010(10)10110(11)010101 \rightarrow 0(10)1 \rightarrow 011 \rightarrow 0(11) \rightarrow 01 .
  • to obtain 1111 from 01010101 Koa can operate as follows: 0101(01)011011(01)110101 \rightarrow (01)01 \rightarrow 101 \rightarrow 1(01) \rightarrow 11 .

Parentheses denote the two positions Koa selected in each operation.

首页