CF1909G Pumping Lemma
Description
[Tanchiky & Siromaru - Crystal Gravity](https://soundcloud.com/messi-ola/crystal-gravity-tanchiky-vs)
⠀
You are given two strings $ s $ , $ t $ of length $ n $ , $ m $ , respectively. Both strings consist of lowercase letters of the English alphabet.
Count the triples $ (x, y, z) $ of strings such that the following conditions are true:
- $ s = x+y+z $ (the symbol $ + $ represents the concatenation);
- $ t = x+\underbrace{ y+\dots+y }_{k \text{ times}} + z $ for some integer $ k $ .
Input Format
The first line contains two integers $ n $ and $ m $ ( $ 1 \leq n < m \leq 10^7 $ ) — the length of the strings $ s $ and $ t $ , respectively.
The second line contains the string $ s $ of length $ n $ , consisting of lowercase letters of the English alphabet.
The third line contains the string $ t $ of length $ m $ , consisting of lowercase letters of the English alphabet.
Output Format
Output a single integer: the number of valid triples $ (x, y, z) $ .
Explanation/Hint
In the first test case, the only valid triple is $ (x, y, z) = (\texttt{"a"}, \texttt{"bc"}, \texttt{"d"}) $ . In fact,
- $ \texttt{"abcd"} = \texttt{"a"} + \texttt{"bc"} + \texttt{"d"} $ ;
- $ \texttt{"abcbcbcd"} = \texttt{"a"} + \texttt{"bc"} + \texttt{"bc"} + \texttt{"bc"} + \texttt{"d"} $ .
In the second test case, there are $ 5 $ valid triples:
- $ (x, y, z) = (\texttt{""}, \texttt{"a"}, \texttt{"aa"}) $ ;
- $ (x, y, z) = (\texttt{""}, \texttt{"aa"}, \texttt{"a"}) $ ;
- $ (x, y, z) = (\texttt{"a"}, \texttt{"a"}, \texttt{"a"}) $ ;
- $ (x, y, z) = (\texttt{"a"}, \texttt{"aa"}, \texttt{""}) $ ;
- $ (x, y, z) = (\texttt{"aa"}, \texttt{"a"}, \texttt{""}) $ .
In the third test case, there are $ 8 $ valid triples:
- $ (x, y, z) = (\texttt{"ab"}, \texttt{"ba"}, \texttt{"babacaab"}) $ ;
- $ (x, y, z) = (\texttt{"abb"}, \texttt{"ab"}, \texttt{"abacaab"}) $ ;
- $ (x, y, z) = (\texttt{"abba"}, \texttt{"ba"}, \texttt{"bacaab"}) $ ;
- $ (x, y, z) = (\texttt{"ab"}, \texttt{"baba"}, \texttt{"bacaab"}) $ ;
- $ (x, y, z) = (\texttt{"abbab"}, \texttt{"ab"}, \texttt{"acaab"}) $ ;
- $ (x, y, z) = (\texttt{"abb"}, \texttt{"abab"}, \texttt{"acaab"}) $ ;
- $ (x, y, z) = (\texttt{"abbaba"}, \texttt{"ba"}, \texttt{"caab"}) $ ;
- $ (x, y, z) = (\texttt{"abba"}, \texttt{"baba"}, \texttt{"caab"}) $ .