{"trustable":true,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\n\u003cscript\u003e\n window.katexOptions \u003d {\n delimiters: [\n {left: \u0027$$$$$$\u0027, right: \u0027$$$$$$\u0027, display: true},\n {left: \u0027$$$\u0027, right: \u0027$$$\u0027, display: false},\n {left: \u0027$$\u0027, right: \u0027$$\u0027, display: true},\n {left: \u0027$\u0027, right: \u0027$\u0027, display: false}\n ]\n };\n\u003c/script\u003e\n","sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003e给定一个字符串 $$$s$$$,由小写拉丁字母 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003ea\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eb\u003c/span\u003e\" 和 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003ec\u003c/span\u003e\" 以及问号 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003e?\u003c/span\u003e\" 组成。\u003c/p\u003e\u003cp\u003e让字符串 $$$s$$$ 中的问号数为 $$$k$$$。让我们用字母 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003ea\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eb\u003c/span\u003e\" 和 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003ec\u003c/span\u003e\" 中的一个替换每个问号。这样我们可以得到所有 $$$3^{k}$$$ 种仅由字母 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003ea\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eb\u003c/span\u003e\" 和 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003ec\u003c/span\u003e\" 组成的字符串。例如,如果 $$$s \u003d $$$ 为 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eac?b?c\u003c/span\u003e\",那么我们可以得到以下字符串:$$$[$$$ \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eacabac\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eacabbc\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eacabcc\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eacbbac\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eacbbbc\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eacbbcc\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eaccbac\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eaccbbc\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eaccbcc\u003c/span\u003e\"$$$]$$$。\u003c/p\u003e\u003cp\u003e你的任务是计算在所有得到的字符串中子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\" 的总数。由于答案可能很大,以 $$$10^{9} + 7$$$ 为模输出。\u003c/p\u003e\u003cp\u003e字符串 $$$t$$$ 的子序列是这样一个序列,它可以从字符串 $$$t$$$ 中删除一些(可能为零)个字母而不改变剩余字母的顺序得到。例如,字符串 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003ebaacbc\u003c/span\u003e\" 包含两个子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\" — 一个由位置 $$$(2, 5, 6)$$$ 处的字母组成的子序列,另一个由位置 $$$(3, 5, 6)$$$ 处的字母组成的子序列。\u003c/p\u003e"}},{"title":"输入","value":{"format":"HTML","content":"\u003cp\u003e输入的第一行包含一个整数 $$$n$$$ $$$(3 \\le n \\le 200\\,000)$$$ — $$$s$$$ 的长度。\u003c/p\u003e\u003cp\u003e输入的第二行包含长度为 $$$n$$$ 的字符串 $$$s$$$,由小写拉丁字母 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003ea\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eb\u003c/span\u003e\" 和 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003ec\u003c/span\u003e\" 以及问号 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003e?\u003c/span\u003e\" 组成。\u003c/p\u003e"}},{"title":"输出","value":{"format":"HTML","content":"\u003cp\u003e打印出如果你用字母 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003ea\u003c/span\u003e\", \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eb\u003c/span\u003e\" 和 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003ec\u003c/span\u003e\" 替换所有问号后得到的所有字符串中子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\" 的总数,以 $$$10^{9} + 7$$$ 为模。\u003c/p\u003e"}},{"title":"示例","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e6\nac?b?c\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e24\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e7\n???????\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e2835\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e9\ncccbbbaaa\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e0\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e5\na???c\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e46\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"注意","value":{"format":"HTML","content":"\u003cp\u003e在第一个示例中,我们可以得到 $$$9$$$ 个字符串:\u003c/p\u003e\u003cul\u003e \u003cli\u003e \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eacabac\u003c/span\u003e\" — 共有 $$$2$$$ 个子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\", \u003c/li\u003e\u003cli\u003e \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eacabbc\u003c/span\u003e\" — 共有 $$$4$$$ 个子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\", \u003c/li\u003e\u003cli\u003e \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eacabcc\u003c/span\u003e\" — 共有 $$$4$$$ 个子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\", \u003c/li\u003e\u003cli\u003e \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eacbbac\u003c/span\u003e\" — 共有 $$$2$$$ 个子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\", \u003c/li\u003e\u003cli\u003e \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eacbbbc\u003c/span\u003e\" — 共有 $$$3$$$ 个子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\", \u003c/li\u003e\u003cli\u003e \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eacbbcc\u003c/span\u003e\" — 共有 $$$4$$$ 个子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\", \u003c/li\u003e\u003cli\u003e \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eaccbac\u003c/span\u003e\" — 共有 $$$1$$$ 个子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\", \u003c/li\u003e\u003cli\u003e \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eaccbbc\u003c/span\u003e\" — 共有 $$$2$$$ 个子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\", \u003c/li\u003e\u003cli\u003e \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eaccbcc\u003c/span\u003e\" — 共有 $$$2$$$ 个子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\"。 \u003c/li\u003e\u003c/ul\u003e\u003cp\u003e因此,总共有 $$$2 + 4 + 4 + 2 + 3 + 4 + 1 + 2 + 2 \u003d 24$$$ 个子序列 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eabc\u003c/span\u003e\"。\u003c/p\u003e"}}]}