Tinkoff Challenge - Final Round (Codeforces Round 414, rated, Div. 1 + Div. 2)
G
Replace All
Codeforces
3400
原题
← F→
翻译中…

Igor the analyst is at work. He learned about a feature in his text editor called "Replace All". Igor is too bored at work and thus he came up with the following problem:

翻译中…

Given two strings $*x*$ and $*y*$ which consist of the English letters 'A' and 'B' only, a pair of strings $(*s*, *t*)$ is called good if:

翻译中…
  • $*s*$ and $*t*$ consist of the characters '0' and '1' only.
  • $1 ≤ |*s*|, |*t*| ≤ *n*$, where $|*z*|$ denotes the length of string $*z*$, and $*n*$ is a fixed positive integer.
  • If we replace all occurrences of 'A' in $*x*$ and $*y*$ with the string $*s*$, and replace all occurrences of 'B' in $*x*$ and $*y*$ with the string $*t*$, then the two obtained from $*x*$ and $*y*$ strings are equal.
翻译中…

For example, if $*x* =$AAB, $*y* =$BB and $*n* = 4$, then (01, 0101) is one of good pairs of strings, because both obtained after replacing strings are "01010101".

翻译中…

The flexibility of a pair of strings $*x*$ and $*y*$ is the number of pairs of good strings $(*s*, *t*)$. The pairs are ordered, for example the pairs $($0, 1$)$ and $($1, 0$)$ are different.

翻译中…

You're given two strings $*c*$ and $*d*$. They consist of characters 'A', 'B' and '?' only. Find the sum of flexibilities of all possible pairs of strings $(*c*', *d*')$ such that $*c*'$ and $*d*'$ can be obtained from $*c*$ and $*d*$ respectively by replacing the question marks with either 'A' or 'B', modulo $10^{9} + 7$.

翻译中…

Input

翻译中…

The first line contains the string $*c*$ ($1 ≤ |*c*| ≤ 3·10^{5}$).

翻译中…

The second line contains the string $*d*$ ($1 ≤ |*d*| ≤ 3·10^{5}$).

翻译中…

The last line contains a single integer $*n*$ ($1 ≤ *n* ≤ 3·10^{5}$).

翻译中…

Output

翻译中…

Output a single integer: the answer to the problem, modulo $10^{9} + 7$.

翻译中…

Note

翻译中…

For the first sample, there are four possible pairs of $(*c*', *d*')$.

翻译中…

If $(*c*', *d*') = ($AA$,$A$)$, then the flexibility is $0$.

翻译中…

If $(*c*', *d*') = ($AB$,$A$)$, then the flexibility is $0$.

翻译中…

If $(*c*', *d*') = ($AA$,$B$)$, then the flexibility is $2$, as the pairs of binary strings $($1$,$11$)$, $($0$,$00$)$ are the only good pairs.

翻译中…

If $(*c*', *d*') = ($AB$,$B$)$, then the flexibility is $0$.

翻译中…

Thus, the total flexibility is $2$.

翻译中…

For the second sample, there are $2^{1} + 2^{2} + ... + 2^{10} = 2046$ possible binary strings of length not greater $10$, and the set of pairs of good strings is precisely the set of pairs $(*s*, *s*)$, where $*s*$ is a binary string of length not greater than $10$.

翻译中…

样例

Input #1
A?
?
3
Output #1
2
InputCopy OutputCopy
Input #2
A
B
10
Output #2
2046
InputCopy OutputCopy
题目信息
题号
794G
时间限制
2 s
内存限制
256 MB
标签
组合数学
动态规划
数学

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。