编程题
### 问题描述
在一个风和日丽的下午,苏苏正在悠闲地学习竞赛知识,这个时候,她的好朋友球球发来一道消息,向苏苏询问一个问题,想知道苏苏会不会?问题的描述如下:
给定一个长度为 $n$ 的字符串,字符串中只包含了 `'0'` 和 `'1'`,定义字符串的贡献值为字符串中连续的 `'1'` 出现的次数的平方的和。例如:字符串 `1011001` 的贡献值为 $1^2+2^2+1^2=6$。
现在球球将字符串中的某些字符(可能零个或多个)改成了 `'?'`,即这些被修改成 `'?'` 的字符中是 `'0'` 还是 `'1'` 的概率都占 $\dfrac{1}{2}$。问修改之后的字符串的贡献值的期望是多少(答案对 $10^9+7$ 取模)?
例如:对于字符串 `11?00`,当字符 `'?'` 是 `'0'` 的时候,则字符串为 `11000`,其贡献值为 $2^2=4$;当字符 `'?'` 是 `'1'` 的时候,则字符串为 `11100`,其贡献值为 $3^2=9$;所以这个字符串的贡献值的期望为 $\dfrac{4+9}{2}=\dfrac{13}{2}$。
### 输入格式
第一行包含一个整数 $n$,表示字符串的长度。
第二行包含一个字符串 $S$,表示上述问题中被修改的字符串,且仅由 `'0','1','?'` 三种字符组成。
### 输出格式
输出包含一个整数,为期望对 $10^9+7$ 取模的结果。
令 $M=10^9+7$,可以证明所求概率可以写成既约分数 $\dfrac{p}{q}$ 的形式,其中 $p,q$ 均为整数且 $q\not\equiv 0 (mod \ M)$。输出的整数应当是 $p \cdot q^{-1}(mod\ M)$。
### 样例输入
```text
5
11?00
```
### 样例输出
```text
500000010
```
### 评测数据规模
对于所有的评测数据,$1 \leq n \leq 2 \times 10^5$。