测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A9713. Obsessive String

编程题 普及/提高-

题目描述

Hamed has recently found a string $t$ and suddenly became quite fond of it. He spent several days trying to find all occurrences of $t$ in other strings he had. Finally he became tired and started thinking about the following problem. Given a string $s$ how many ways are there to extract $k>=1$ non-overlapping substrings from it such that each of them contains string $t$ as a substring? More formally, you need to calculate the number of ways to choose two sequences $a_{1},a_{2},...,a_{k}$ and $b_{1},b_{2},...,b_{k}$ satisfying the following requirements:

- $k>=1$
- ![](/uploads/acgo/image/8a317842c9747dd3_f1349d87ec7f.jpeg)
- ![](/uploads/acgo/image/eafd56a1c242c6c7_53dd99692070.jpeg)
- ![](/uploads/acgo/image/a73c918d5097e9a4_41d43fd6239c.jpeg)
- ![](/uploads/acgo/image/7c208b0f50c3037c_fb4a52e0ca43.jpeg) $t$ is a substring of string $s_{ai}s_{ai}+1... s_{bi}$ (string $s$ is considered as $1$ -indexed).

As the number of ways can be rather large print it modulo $10^{9}+7$ .

输入格式

Input consists of two lines containing strings $s$ and $t$ ( $1<=|s|,|t|<=10^{5}$ ). Each string consists of lowercase Latin letters.

输出格式

Print the answer in a single line.

输入输出样例

输入 #1
ababa
aba
输出 #1
5
输入 #2
welcometoroundtwohundredandeightytwo
d
输出 #2
274201
输入 #3
ddd
d
输出 #3
12
上一题 去做题 下一题