#include <algorithm> #include <vector> #include <numeric> #include <iostream> #include <iterator> #include <string> #include <random> #include <functional> #include <cctype> using namespace std; int main() { vector<string> words { istream_iterator<string>{cin}, istream_iterator<string>{} }; vector<size_t> indexes (words.size()); iota(begin(indexes), end(indexes), 0); shuffle(begin(indexes), end(indexes), mt19937{random_device{}()}); size_t number_of_elements { words.size() / 7 }; sort(begin(indexes), begin(indexes) + number_of_elements, greater<>{}); for_each(begin(indexes), begin(indexes) + number_of_elements, [&words](size_t index){ words.erase(begin(words)+index); }); string const vowels { "aoeiyu" }; transform(begin(words), end(words), ostream_iterator<string>{cout, " "}, [&vowels](string s) { transform(begin(s),end(s),begin(s), ::tolower); if ( s.length() < 8 ) return s; size_t last_vowel { s.find_last_of(vowels) }; s.erase(last_vowel); return s; }); }