B.A Lot of Joy (数学期望)

B. A Lot of Joy

time limit per test

2.0 s

memory limit per test

256 MB

input

standard input

output

standard output

Two boys Gena and Petya wrote on two strips of paper the same string s that consisted of lowercase Latin letters. Then each boy took one strip, cut it into small pieces so that each piece contained exactly one letter and put all pieces into his pocket. After that Gena and Petya repeated the following procedure until their pockets became empty: they took one piece from their pockets and rejoiced if the letters on these pieces were equal.

Determine the expected number of times the boys rejoiced during this process.

Input

The input contains the only string s which was initially written on Gena's and Petya's strips. The string has length between 1 and 200000, inclusively, and consists of lowercase Latin letters.

Output

Output the only real number — the expected number of times Gena and Petya rejoiced during their business. The absolute or relative error of the answer should not exceed 10 - 9.

Examples

input

Copy

abc

output

Copy

1.000000000000000

input

Copy

zzz

output

Copy

3.000000000000000

Examples

Input

abc

Output

1.000000000000000

Input

zzz

Output

3.000000000000000

题目连接:http://codeforces.com/gym/100187/problem/B 

这种像水题的东西就用找规律的思想

abc == 1/3

aab ==5/3 ==4/3+1/3 这里4是2+2还是2*2不确定 

aaa ==3  == 9/3=3*3/3 这样就找到规律了

#include<cstdio>
#include<cstring>
char str[200010];
int a[30];
int main()
{
        int i;
	    scanf("%s",str);
		int l=strlen(str);
		memset(a,0,sizeof(a));
		for(i=0;i<l;i++)
		{
			a[str[i]-'a']++;
		}
		double ans=0.0;
		for(i=0;i<26;i++)
		{
			ans+=(double)a[i]*a[i]/l;
		}
		printf("%0.15lf\n",ans);
	    return 0;
}

猜你喜欢

转载自blog.csdn.net/xigongdali/article/details/81590066
今日推荐