#include <iostream> #include <string> #include <algorithm> using namespace std; char samo[6] = {'a', 'o', 'u', 'e', 'y', 'i'}; int znajdzKolejne(int x, string &s) { int ile = 0; bool sam = false; for (int i = x; i < s.size(); i++) { char c = s[i]; if (count(samo, samo + 6, c) > 0) { if (sam == false) ile = 0; sam = true; ile += 1; } else { if (sam == true) ile = 0; sam = false; ile += 1; } if (ile == 3) return i - 2; } return s.size(); } int main() { ios_base::sync_with_stdio(false); string s; cin >> s; long long int ostatnie = 0; long long int suma = 0; for (int i = znajdzKolejne(0, s); i < s.size(); i = znajdzKolejne(i + 1, s)) { int p = i - ostatnie + 1; int k = s.size() - (i + 2); suma += p * k; ostatnie = i + 1; } cout << suma << "\n"; 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include <iostream> #include <string> #include <algorithm> using namespace std; char samo[6] = {'a', 'o', 'u', 'e', 'y', 'i'}; int znajdzKolejne(int x, string &s) { int ile = 0; bool sam = false; for (int i = x; i < s.size(); i++) { char c = s[i]; if (count(samo, samo + 6, c) > 0) { if (sam == false) ile = 0; sam = true; ile += 1; } else { if (sam == true) ile = 0; sam = false; ile += 1; } if (ile == 3) return i - 2; } return s.size(); } int main() { ios_base::sync_with_stdio(false); string s; cin >> s; long long int ostatnie = 0; long long int suma = 0; for (int i = znajdzKolejne(0, s); i < s.size(); i = znajdzKolejne(i + 1, s)) { int p = i - ostatnie + 1; int k = s.size() - (i + 2); suma += p * k; ostatnie = i + 1; } cout << suma << "\n"; return 0; } |