[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` です。