CF1943B Non-Palindromic Substring
Description
A string $ t $ is said to be $ k $ -good if there exists at least one substring $ ^\dagger $ of length $ k $ which is not a palindrome $ ^\ddagger $ . Let $ f(t) $ denote the sum of all values of $ k $ such that the string $ t $ is $ k $ -good.
You are given a string $ s $ of length $ n $ . You will have to answer $ q $ of the following queries:
- Given $ l $ and $ r $ ( $ l < r $ ), find the value of $ f(s_ls_{l + 1}\ldots s_r) $ .
$ ^\dagger $ A substring of a string $ z $ is a contiguous segment of characters from $ z $ . For example, " $ \mathtt{defor} $ ", " $ \mathtt{code} $ " and " $ \mathtt{o} $ " are all substrings of " $ \mathtt{codeforces} $ " while " $ \mathtt{codes} $ " and " $ \mathtt{aaa} $ " are not.
$ ^\ddagger $ A palindrome is a string that reads the same backwards as forwards. For example, the strings " $ \texttt{z} $ ", " $ \texttt{aa} $ " and " $ \texttt{tacocat} $ " are palindromes while " $ \texttt{codeforces} $ " and " $ \texttt{ab} $ " are not.
Input Format
Each test contains multiple test cases. The first line contains a single integer $ t $ ( $ 1 \leq t \leq 2 \cdot 10^4 $ ) — the number of test cases. The description of the test cases follows.
The first line of each test case contains two integers $ n $ and $ q $ ( $ 2 \le n \le 2 \cdot 10^5, 1 \le q \le 2 \cdot 10^5 $ ), the size of the string and the number of queries respectively.
The second line of each test case contains the string $ s $ . It is guaranteed the string $ s $ only contains lowercase English characters.
The next $ q $ lines each contain two integers, $ l $ and $ r $ ( $ 1 \le l < r \le n $ ).
It is guaranteed the sum of $ n $ and the sum of $ q $ both do not exceed $ 2 \cdot 10^5 $ .
Output Format
For each query, output $ f(s_ls_{l + 1}\ldots s_r) $ .
Explanation/Hint
In the first query of the first test case, the string is $ \mathtt{aaab} $ . $ \mathtt{aaab} $ , $ \mathtt{aab} $ and $ \mathtt{ab} $ are all substrings that are not palindromes, and they have lengths $ 4 $ , $ 3 $ and $ 2 $ respectively. Thus, the string is $ 2 $ -good, $ 3 $ -good and $ 4 $ -good. Hence, $ f(\mathtt{aaab}) = 2 + 3 + 4 = 9 $ .
In the second query of the first test case, the string is $ \mathtt{aaa} $ . There are no non-palindromic substrings. Hence, $ f(\mathtt{aaa}) = 0 $ .
In the first query of the second test case, the string is $ \mathtt{abc} $ . $ \mathtt{ab} $ , $ \mathtt{bc} $ and $ \mathtt{abc} $ are all substrings that are not palindromes, and they have lengths $ 2 $ , $ 2 $ and $ 3 $ respectively. Thus, the string is $ 2 $ -good and $ 3 $ -good. Hence, $ f(\mathtt{abc}) = 2 + 3 = 5 $ . Note that even though there are $ 2 $ non-palindromic substrings of length $ 2 $ , we count it only once.