[AGC019B] Reverse and Compare
题意翻译
给定一个字符串 $A$,可以选择区间 $[i,j]$ 翻转一次,求能得到多少本质不同的字符串。
$|A|\leq 2\times 10^5$。
题目描述
[problemUrl]: https://atcoder.jp/contests/agc019/tasks/agc019_b
英小文字からなる文字列 $ A\ =\ A_1\ A_2\ ...\ A_n $ があります。
あなたは $ 1\ \leq\ i\ \leq\ j\ \leq\ n $ であるような任意の二つの添字 $ i,\ j $ を選び、$ A $ のうち部分文字列 $ A_i\ A_{i+1}\ ...\ A_j $ を反転することができます。
この操作は一回まで行うことができます。
これによって得られる文字列は何通りあるでしょうか?
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ A $
输出格式
$ A $ のうち任意の部分文字列を一回まで反転することによって、何通りの文字列が得られるか出力せよ。
输入输出样例
输入样例 #1
aatt
输出样例 #1
5
输入样例 #2
xxxxxxxxxx
输出样例 #2
1
输入样例 #3
abracadabra
输出样例 #3
44
说明
### 制約
- $ 1\ \leq\ |A|\ \leq\ 200,000 $
- $ A $ は英小文字からなる。
### Sample Explanation 1
得られる文字列は `aatt`(何もしない)、`atat`($ A[2..3] $ を反転)、`atta`($ A[2..4] $ を反転)、`ttaa`($ A[1..4] $ を反転)、`taat`($ A[1..3] $ を反転)です。
### Sample Explanation 2
どの部分文字列を反転しても、結果は `xxxxxxxxxx` です。