#include <iostream> #include <algorithm> #include <string> bool is_vowel(char c) { return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'y'; } int main(int argc, char** argv) { std::string input; std::cin >> input; const auto len = input.size(); char c; size_t prev_center_idx = 0; size_t consecutive_vowels = 0; size_t consecutive_consonants = 0; size_t total = 0; for (size_t idx = 0; idx < len; idx++) { c = input[idx]; if (is_vowel(c)) { consecutive_consonants = 0; consecutive_vowels += 1; } else { consecutive_vowels = 0; consecutive_consonants += 1; } if (consecutive_vowels >= 3 || consecutive_consonants >= 3) { size_t center_idx = idx - 1; total += (center_idx - prev_center_idx) * (len - center_idx - 1); prev_center_idx = center_idx; } } std::cout << total << std::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 | #include <iostream> #include <algorithm> #include <string> bool is_vowel(char c) { return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'y'; } int main(int argc, char** argv) { std::string input; std::cin >> input; const auto len = input.size(); char c; size_t prev_center_idx = 0; size_t consecutive_vowels = 0; size_t consecutive_consonants = 0; size_t total = 0; for (size_t idx = 0; idx < len; idx++) { c = input[idx]; if (is_vowel(c)) { consecutive_consonants = 0; consecutive_vowels += 1; } else { consecutive_vowels = 0; consecutive_consonants += 1; } if (consecutive_vowels >= 3 || consecutive_consonants >= 3) { size_t center_idx = idx - 1; total += (center_idx - prev_center_idx) * (len - center_idx - 1); prev_center_idx = center_idx; } } std::cout << total << std::endl; return 0; } |