枚举子串的长度
/* ***********************************************
Author :CKboss
Created Time :2015年02月06日 星期五 14时16分47秒
File Name :CF509E.cpp
************************************************ */
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>
#include <cstdlib>
#include <vector>
#include <queue>
#include <set>
#include <map>
using namespace std;
const int maxn = 500500;
const char vc[6]={'I','E','A','O','U','Y'};
bool vowel(char c)
{
for(int i=0;i<6;i++) if(vc[i]==c) return true;
return false;
}
char str[maxn];
int n;
double sum[maxn];
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
scanf("%s",str);
n=strlen(str);
for(int i=0;i<n;i++)
sum[i+1]=sum[i]+vowel(str[i]);
double temp=sum[n];
double ans=temp+temp/n;
if(n==1) ans/=2;
for(int i=2;i<=n-1;i++)
{
int j=n-i+1;
int len1=i,len2=n-i+1;
if(len1>len2) break;
temp+=sum[len2]-sum[len1-1];
if(len1!=len2) ans+=temp/len1+temp/len2;
else ans+=temp/len1;
}
printf("%.8lf\n",ans);
return 0;
}