func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T1>   void deb(T1 e) {     cout << e << endl;   }   template <class T1, class T2>   void deb(T1 e1, T2 e2) {     cout << e1 <<     << e2 << endl;   }   template <class T1, class T2, class T3>   void deb(T1 e1, T2 e2, T3 e3) {     cout << e1 <<     << e2 <<     << e3 << endl;   }   template <class T1, class T2, class T3, class T4>   void deb(T1 e1, T2 e2, T3 e3, T4 e4) {     cout << e1 <<     << e2 <<     << e3 <<     << e4 << endl;   }   template <class T1, class T2, class T3, class T4, class T5>   void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5) {     cout << e1 <<     << e2 <<     << e3 <<     << e4 <<     << e5 << endl;   }   template <class T1, class T2, class T3, class T4, class T5, class T6>   void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5, T6 e6) {     cout << e1 <<     << e2 <<     << e3 <<     << e4 <<     << e5 <<     << e6          << endl;   }   string st;   long long cum1[500010], cum2[500010], cum3[500010], cumhelp3[500010];   bool okay(char ch) {     return ch ==  A  || ch ==  E  || ch ==  I  || ch ==  O  || ch ==  U  ||            ch ==  Y ;   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     ;     int mini, i, j, n, baki1, baki2;     cin >> st;     for (i = 0; i < st.size(); i++) {       if (!okay(st[i])) continue;       baki1 = i;       baki2 = st.size() - i - 1;       mini = min(baki1, baki2);       mini++;       cum1[1]++;       cum1[mini + 1]--;       if (baki1 > baki2) swap(baki1, baki2);       if (baki2 > baki1) {         cum2[baki1 + 2] += mini;         cum2[baki2 + 2] -= mini;       }       mini--;       cumhelp3[st.size() - mini + 2]--;       cum3[st.size() - mini + 1] += mini;     }     double ans = 0;     for (i = 1; i <= st.size(); i++) {       cum1[i] += cum1[i - 1];       cum2[i] += cum2[i - 1];       cumhelp3[i] += cumhelp3[i - 1];       cum3[i] += cum3[i - 1] + cumhelp3[i];     }     for (i = 1; i <= st.size(); i++) {       cum1[i] *= (long long)i;       ans += (double)(cum1[i] + cum2[i] + cum3[i]) / (double)i;     }     cout << fixed << setprecision(12) << ans << endl;     return 0;   }   