Codeforces Beta Round 92 (Div. 1 Only)
D
String
Codeforces
2300
原题
← CE →
翻译中…

You are given a string $*s*$. Each pair of numbers $*l*$ and $*r*$ that fulfill the condition $1 ≤ *l* ≤ *r* ≤ |*s*|$, correspond to a substring of the string $*s*$, starting in the position $*l*$ and ending in the position $*r*$ (inclusive).

翻译中…

Let's define the function of two strings $*F*(*x*, *y*)$ like this. We'll find a list of such pairs of numbers for which the corresponding substrings of string $*x*$ are equal to string $*y*$. Let's sort this list of pairs according to the pair's first number's increasing. The value of function $*F*(*x*, *y*)$ equals the number of non-empty continuous sequences in the list.

翻译中…

For example: $*F*(*babbabbababbab*, *babb*) = 6$. The list of pairs is as follows:

翻译中…

$(1, 4), (4, 7), (9, 12)$

翻译中…

Its continuous sequences are:

翻译中…
  • $(1, 4)$
  • $(4, 7)$
  • $(9, 12)$
  • $(1, 4), (4, 7)$
  • $(4, 7), (9, 12)$
  • $(1, 4), (4, 7), (9, 12)$
翻译中…

Your task is to calculate for the given string $*s*$ the sum $*F*(*s*, *x*)$ for all $*x*$, that $*x*$ belongs to the set of all substrings of a string $*s*$.

翻译中…

Input

翻译中…

The only line contains the given string $*s*$, consisting only of small Latin letters ($1 ≤ |*s*| ≤ 10^{5}$).

翻译中…

Output

翻译中…

Print the single number — the sought sum.

翻译中…

Please do not use the %lld specificator to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams or the %I64d specificator.

翻译中…

Note

翻译中…

In the first sample the function values at $*x*$ equal to "a", "aa", "aaa" and "aaaa" equal 10, 6, 3 and 1 correspondingly.

翻译中…

In the second sample for any satisfying $*x*$ the function value is 1.

翻译中…

样例

Input #1
aaaa
Output #1
20
InputCopy OutputCopy
Input #2
abcdef
Output #2
21
InputCopy OutputCopy
Input #3
abacabadabacaba
Output #3
188
InputCopy OutputCopy
题目信息
题号
123D
时间限制
2 s
内存限制
256 MB
标签
后缀结构

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。