[BOJ 32083] Twin Friends

View as PDF

Submit solution

Points: 4
Time limit: 2.0s
Memory limit: 1G

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

You meet two new friends who are twins. The name of the elder twin is $A$, which consists of $N$ characters. While the name of the younger twin is $B$, which consists of $M$ characters. It is known that $N ≤ M$.</p>

You want to call each of them with a nickname. For the elder twin, you want to pick any permutation of $A$ as the nickname. For the younger twin, you want to remove exactly $M - N$ characters from any permutation of $B$. Denote the nicknames of the elder twin and the younger twin as $A'$ and $B'$, respectively.

You want the nicknames to satisfy the following requirement. For each i that satisfies $1 ≤ i ≤ N$, $B'_i$ must be equal to either $A'_i$ or the next letter that follows alphabetically after $A'_i$ (if such a next letter exists).

Determine the number of different pairs of nicknames $(A' , B' )$ that satisfy the requirement. Two pairs of nicknames are considered different if at least one of the nicknames are different. As the result might be large, find the answer modulo $998\, 244\, 353$.

입력 형식

The first line consists of two integers $N$ $M$ ($1 ≤ N ≤ M ≤ 200\, 000$).</p>

The second line consists of a string $A$ of length $N$.

The third line consists of a string $B$ of length $M$.

All strings consist of only upper-case letters.

출력 형식

Output a single integer representing number of different pairs $(A' , B' )$ that satisfy the requirement, modulo $998\, 244\, 353$.

예제 입력 1

3 4
AMA
ANAB

예제 출력 1

9

예제 입력 2

5 8
BINUS
BINANUSA

예제 출력 2

120

예제 입력 3

15 30
BINUSUNIVERSITY
BINANUSANTARAUNIVERSITYJAKARTA

예제 출력 3

151362308

예제 입력 4

4 4
UDIN
ASEP

예제 출력 4

0

Comments

There are no comments at the moment.