#include <iostream>
using namespace std;
bool isVowel( const char ch )
{
return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u';
}
void rotate(char *from, char *to)
{
char c = *to;
while (--to >= from)
{
*(to + 1) = *to;
}
*from = c;
}
void rearange( char *str )
{
char *vowel, *consonant;
vowel = str;
consonant = str;
while ( *str )
{
while (*consonant && isVowel(*consonant))
{
consonant++;
}
while (*vowel && !isVowel(*vowel))
{
vowel++;
}
rotate (str, consonant);
if (consonant > vowel)
{
vowel++;
}
str++;
rotate (str, vowel);
if (vowel > consonant)
{
consonant++;
}
str++;
consonant++;
vowel++;
}
}
int main( int argc, char *argv[] )
{
string val = "aeiouzwxyzabcdeo";
std::cout << val << '\n';
rearange( (char*)val.c_str() );
std::cout << val << '\n';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBpc1Zvd2VsKCBjb25zdCBjaGFyIGNoICkKewogIHJldHVybiBjaCA9PSAnYScgfHwgY2ggPT0gJ2UnIHx8IGNoID09ICdpJyB8fCBjaCA9PSAnbycgfHwgY2ggPT0gJ3UnOwp9Cgp2b2lkIHJvdGF0ZShjaGFyICpmcm9tLCBjaGFyICp0bykKewoJY2hhciBjID0gKnRvOwoJCgl3aGlsZSAoLS10byA+PSBmcm9tKQoJewoJCSoodG8gKyAxKSA9ICp0bzsKCX0KCSpmcm9tID0gYzsKfQoKdm9pZCByZWFyYW5nZSggY2hhciAqc3RyICkKewoKICBjaGFyICp2b3dlbCwgKmNvbnNvbmFudDsKICB2b3dlbCA9IHN0cjsKICBjb25zb25hbnQgPSBzdHI7CgogIHdoaWxlICggKnN0ciApCiAgewogIAl3aGlsZSAoKmNvbnNvbmFudCAmJiBpc1Zvd2VsKCpjb25zb25hbnQpKQogIAl7CiAgCQljb25zb25hbnQrKzsKICAJfQogIAl3aGlsZSAoKnZvd2VsICYmICFpc1Zvd2VsKCp2b3dlbCkpCiAgCXsKICAJCXZvd2VsKys7CiAgCX0KICAgIAogICAgcm90YXRlIChzdHIsIGNvbnNvbmFudCk7CiAgICBpZiAoY29uc29uYW50ID4gdm93ZWwpCiAgICB7CiAgICAJdm93ZWwrKzsKICAgIH0KICAgIHN0cisrOwogICAgcm90YXRlIChzdHIsIHZvd2VsKTsKICAgIGlmICh2b3dlbCA+IGNvbnNvbmFudCkKICAgIHsKICAgIAljb25zb25hbnQrKzsKICAgIH0KICAgIHN0cisrOwogICAgY29uc29uYW50Kys7CiAgICB2b3dlbCsrOwogIH0KCn0KCmludCBtYWluKCBpbnQgYXJnYywgY2hhciAqYXJndltdICkKewogIAogIHN0cmluZyB2YWwgPSAiYWVpb3V6d3h5emFiY2RlbyI7CgogIHN0ZDo6Y291dCA8PCB2YWwgPDwgJ1xuJzsKICByZWFyYW5nZSggKGNoYXIqKXZhbC5jX3N0cigpICk7CiAgc3RkOjpjb3V0IDw8IHZhbCA8PCAnXG4nOwoKICByZXR1cm4gMDsKfQ==