CF123D.String

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a string ss . Each pair of numbers ll and rr that fulfill the condition 1<=l<=r<=s1<=l<=r<=|s| , correspond to a substring of the string ss , starting in the position ll and ending in the position rr (inclusive).

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

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

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

Its continuous sequences are:

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

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

输入格式

The only line contains the given string ss , consisting only of small Latin letters ( 1<=s<=1051<=|s|<=10^{5} ).

输出格式

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.

输入输出样例

  • 输入#1

    aaaa
    

    输出#1

    20
    
  • 输入#2

    abcdef
    

    输出#2

    21
    
  • 输入#3

    abacabadabacaba
    

    输出#3

    188
    

说明/提示

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

In the second sample for any satisfying xx the function value is 1.

首页