#include <iostream> using namespace std; class Program { string text; string consonants, vowels; long long solutions; // functions bool IsConsonantOrVovel(char c) { for (int i = 0; i < vowels.length(); i++) { if (c == vowels[i]) return true; } return false; } public: // constructor Program() { // load text text = ""; char c = ' '; while (true) { cin.get(c); if (c != '\n') text += c; else break; } consonants = "bcdfghjklmnpqrstvwxz"; vowels = "aeiouy"; solutions = 0; } void FindAnswer() { if (text.length() < 3) { solutions = 0; return; } // search for 3 consonants or 3 vowels bool c1, c2, c3; int last_diff_part = 0; c1 = IsConsonantOrVovel(text[0]); c2 = IsConsonantOrVovel(text[1]); for (int i = 0; i < text.length() - 2; i++) { c3 = IsConsonantOrVovel(text[i + 2]); if ((c1 && c2 && c3) || (!c1 && !c2 && !c3)) { solutions += (i - last_diff_part + 1) * (text.length() - (i + 2)); last_diff_part = i + 1; } c1 = c2; c2 = c3; } } long long GetAnswer() { return solutions; } }; int main() { std::ios_base::sync_with_stdio(0); std::cin.tie(0); Program P; P.FindAnswer(); cout << P.GetAnswer() << 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 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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | #include <iostream> using namespace std; class Program { string text; string consonants, vowels; long long solutions; // functions bool IsConsonantOrVovel(char c) { for (int i = 0; i < vowels.length(); i++) { if (c == vowels[i]) return true; } return false; } public: // constructor Program() { // load text text = ""; char c = ' '; while (true) { cin.get(c); if (c != '\n') text += c; else break; } consonants = "bcdfghjklmnpqrstvwxz"; vowels = "aeiouy"; solutions = 0; } void FindAnswer() { if (text.length() < 3) { solutions = 0; return; } // search for 3 consonants or 3 vowels bool c1, c2, c3; int last_diff_part = 0; c1 = IsConsonantOrVovel(text[0]); c2 = IsConsonantOrVovel(text[1]); for (int i = 0; i < text.length() - 2; i++) { c3 = IsConsonantOrVovel(text[i + 2]); if ((c1 && c2 && c3) || (!c1 && !c2 && !c3)) { solutions += (i - last_diff_part + 1) * (text.length() - (i + 2)); last_diff_part = i + 1; } c1 = c2; c2 = c3; } } long long GetAnswer() { return solutions; } }; int main() { std::ios_base::sync_with_stdio(0); std::cin.tie(0); Program P; P.FindAnswer(); cout << P.GetAnswer() << endl; return 0; } |