#include <bits/stdc++.h> #define ll long long using namespace std; vector <bool> Sam(256, false); bool is_sam(char a) { return Sam[a]; } int main() { ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0); for (char c : {'a', 'e', 'i', 'o', 'u', 'y'}) Sam[c] = true; int n; string s; cin >> s; n = s.size(); vector <int> P(n+1, -1); for (int i = n-3; i >= 0; i--) { if (is_sam(s[i]) == is_sam(s[i+1]) && is_sam(s[i]) == is_sam(s[i+2])) P[i] = i+2; else P[i] = P[i+1]; } ll ans = 0; for (int i = 0; i < n; i++) if (P[i] != -1) ans += (n - P[i]); cout << ans <<endl; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <bits/stdc++.h> #define ll long long using namespace std; vector <bool> Sam(256, false); bool is_sam(char a) { return Sam[a]; } int main() { ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0); for (char c : {'a', 'e', 'i', 'o', 'u', 'y'}) Sam[c] = true; int n; string s; cin >> s; n = s.size(); vector <int> P(n+1, -1); for (int i = n-3; i >= 0; i--) { if (is_sam(s[i]) == is_sam(s[i+1]) && is_sam(s[i]) == is_sam(s[i+2])) P[i] = i+2; else P[i] = P[i+1]; } ll ans = 0; for (int i = 0; i < n; i++) if (P[i] != -1) ans += (n - P[i]); cout << ans <<endl; return 0; } |