Reverse and Compare

AtCoder
IDagc019_b
Time2000ms
Memory256MB
Difficulty
You have a string $A = A_1 A_2 ... A_n$ consisting of lowercase English letters. You can choose any two indices $i$ and $j$ such that $1 \leq i \leq j \leq n$ and reverse substring $A_i A_{i+1} ... A_j$. You can perform this operation at most once. How many different strings can you obtain? ## Constraints * $1 \leq |A| \leq 200,000$ * $A$ consists of lowercase English letters. ## Input Input is given from Standard Input in the following format: $A$ [samples]
Samples
Input #1
aatt
Output #1
5

You can obtain `aatt` (don't do anything), `atat` (reverse $A[2..3]$), `atta` (reverse $A[2..4]$), `ttaa` (reverse $A[1..4]$) and `taat` (reverse $A[1..3]$).
Input #2
xxxxxxxxxx
Output #2
1

Whatever substring you reverse, you'll always get `xxxxxxxxxx`.
Input #3
abracadabra
Output #3
44
API Response (JSON)
{
  "problem": {
    "name": "Reverse and Compare",
    "description": {
      "content": "You have a string $A = A_1 A_2 ... A_n$ consisting of lowercase English letters. You can choose any two indices $i$ and $j$ such that $1 \\leq i \\leq j \\leq n$ and reverse substring $A_i A_{i+1} ... A_",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "agc019_b"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "You have a string $A = A_1 A_2 ... A_n$ consisting of lowercase English letters.\nYou can choose any two indices $i$ and $j$ such that $1 \\leq i \\leq j \\leq n$ and reverse substring $A_i A_{i+1} ... A_...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments