编程题
### 问题描述
小蓝在沙滩上发现了一个神秘的瓶子,瓶子里装满了神奇的问号。小蓝好奇地想知道这些问号可以填充成多少个由字母 "a"、"b" 和 "c" 组成的字符串,并且这些字符串中包含多少个 "abc" 的子序列。小明想知道这个数量,希望你能够帮助他。
具体来说,你需要将瓶子中的所有问号都填充成字母 "a"、"b" 或 "c",得到所有可能的字符串。然后,计算所有字符串中包含的 "abc" 子序列总数。由于答案可能非常大,因此请将其对 $10^9+7$ 取模。
### 输入格式
第一行包含一个整数 $n$,表示字符串的长度。
第二行包含一个长度为 $n$ 的字符串 $s$,其中包含小写拉丁字母 "a"、"b" 和 "c",以及问号 "?"。
### 输出格式
输出一个整数,表示所有可能的字符串中包含的 "abc" 子序列总数对 $10^9+7$ 取模的结果。
### 样例输入
```txt
7
ac?b?c
```
### 样例输出
```txt
24
```
### 样例说明
在第一个样例中,可能的情况有 $9$ 种:
+ "acabac" 有 $2$ 个子序列 "abc"。
+ "acabbc" 有 $4$ 个子序列 "abc"。
+ "acabcc" 有 $4$ 个子序列 "abc"。
+ "acbbac" 有 $2$ 个子序列 "abc"。
+ "acbbbc" 有 $3$ 个子序列 "abc"。
+ "acbbcc" 有 $4$ 个子序列 "abc"。
+ "accbac" 有 $1$个子序列 "abc"。
+ "accbbc" 有 $2$ 个子序列 "abc"。
+ "accbcc" 有 $2$ 个子序列 "abc"。
因此,总共有 $2+4+4+2+3+4+1+2+2=24$ 个子序列 "abc"。
### 评测数据规模
对于 $100$% 的评测数据,$3\leq n\leq 200000$。