AT_s8pc_2_e 部分文字列
Description
[problemUrl]: https://atcoder.jp/contests/s8pc-2/tasks/s8pc_2_e
$ square1001 $「$ E869120 $は全て文字の$ character $が違うが、$ square1001 $は文字の$ character $が一致するものが$ 2 $個もある!」
$ E869120 $「ということは、部分文字列の種類数も違うのでは…」
$ square1001 $「たとえば$ 1001 $では、$ 2 $文字目だけの$ '0' $と$ 3 $文字目だけの$ '0' $が重複しているのではないか!($ '1' $もそうです)」
ということで、今回は文字列Sの部分文字列を全て列挙し、文字列の重複を$ 1 $つにまとめて数えたときのの文字数の合計を求めてください。
例えば、$ "aba" $のとき、{$ "a","b","a","ab","ba","aba" $}の$ 6 $通りが考えられますが、$ "a" $は重複しているので、
部分文字列としては$ 5 $種類が考えられます。
{$ "a","b","ab","ba","aba" $}の合計$ 1+1+2+2+3=\ 9 $文字となります。
注意:答えは$ 32 $ビット整数型に収まらない可能性があります。
- $ a,\ b,\ c,\ ab,\ bc,\ abc $ が $ abc $ の部分文字列であり, 合計は $ 10 $ 文字である。
- 重複があることに注意してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ S $
- $ 1 $ 行目には, 調べる文字列$ S $ が与えられる。
Output Format
出力は以下の形式で標準出力に従うこと。
- 部分文字列として考えられる文字列$ ( $重複は$ 1 $つにまとめて数える$ ) $の合計の長さを$ 1 $行で出力してください。
- ただし、答えは$ 32 $ビット整数型に収まらない可能性があります。
Explanation/Hint
### 制約
- $ 1 $ ≦ $ |S| $ ≦ $ 100,000 $
- 含まれる文字の種類はalphabetの小文字だけ
### 小課題
小課題 $ 1 $ \[ $ 15 $ 点 \]
- $ 1≦|S|≦100 $ を満たす。
小課題 $ 2 $ \[ $ 35 $ 点 \]
- $ 1≦|S|≦2,000 $ を満たす。
小課題 $ 3 $ \[ $ 50 $ 点 \]
- 追加の制約はない。