这双是一道水题
题号:NC220741
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

对于一个字符串 S,我们定义S 的分值 f(S)为S 中恰好出现一次的字符个数。例如f( "aba")=1,f("abc")=3, f("aaa")=0。
现在给定一个字符串 S[0,1,2,...,n-1](长度为 n),请你计算对于所有S 的非空子串S[i..j](0<=i<=j<n) ,f(S[i...j])的和是多少。

输入描述:

输入一行包含一个由小写字母组成的字符串S。

输出描述:

输出一个整数表示答案。

示例1

输入

复制
ababc

输出

复制
21

说明

子串 f值

a     1

ab    2

aba   1

abab  0

ababc 1

 b    1

 ba   2

 bab  1

 babc 2

  a   1

  ab  2

  abc 3

   b  1

   bc 2

    c 1

备注:

对于20%的评测用例,;1<=n<=10

对于40%的评测用例,;1<=n<=100

对于50%的评测用例,;1<=n<=1000

对于60%的评测用例,;1<=n<=10000

对于所有,1<=n<=100000