atcoder#AGC019B. [AGC019B] Reverse and Compare

[AGC019B] Reverse and Compare

分数 : 500500

问题陈述

您有一个由小写英文字母组成的字符串 A=A1A2...AnA = A_1 A_2 ... A_n

您可以选择任意两个索引 iijj,使得 1ijn1 \leq i \leq j \leq n,并反转子字符串 AiAi+1...AjA_i A_{i+1} ... A_j

您最多可以执行一次此操作。

您可以获得多少个不同的字符串?

约束条件

  • 1A200,0001 \leq |A| \leq 200,000
  • AA 由小写英文字母组成。

输入

输入来自标准输入,格式如下:

AA

输出

打印您最多可以通过反转 AA 中的任意子字符串一次所获得的不同字符串的数量。

aatt
5

您可以获得 aatt(什么都不做),atat(反转 A[2..3]A[2..3]),atta(反转 A[2..4]A[2..4]),ttaa(反转 A[1..4]A[1..4])和 taat(反转 A[1..3]A[1..3])。

xxxxxxxxxx
1

无论您反转哪个子字符串,您总是会得到 xxxxxxxxxx

abracadabra
44