#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
//#define print_input
//#define debug_upper
int isvowel (char alphabet)
{
if (alphabet == 'A' || alphabet == 'E' || alphabet == 'I' || alphabet == 'O' || alphabet == 'U')
return 1 ;
else if (alphabet == 'a' || alphabet == 'e' || alphabet == 'i' || alphabet == 'o' || alphabet == 'u')
return 1 ;
else
return 0 ;
}
int compare(const void* ptr1 , const void* ptr2 )
{
char* word_1 = (char* )ptr1 ;
char* word_2 = (char* )ptr2 ;
return -1 ;
return 1 ;
int i ;
int sum_1 = 0 ;
int sum_2 = 0 ;
for(i
= 0 ; i
< strlen(word_1
) ; i
++) sum_1 ++ ;
for(i
= 0 ; i
< strlen(word_2
) ; i
++) sum_2 ++ ;
#ifdef debug_upper
printf("%s have %d upper\n" , word_1
, sum_1
) ; printf("%s have %d upper\n" , word_2
, sum_2
) ; #endif
if (sum_1 < sum_2 )
return -1 ;
else if (sum_1 > sum_2)
return 1 ;
int vowel_1 = 0 ;
int vowel_2 = 0 ;
for(i
= 0 ; i
< strlen(word_1
) ; i
++) if (isvowel(word_1[i]) )
vowel_1 ++ ;
for(i
= 0 ; i
< strlen(word_2
) ; i
++) if (isvowel(word_2[i]) )
vowel_2 ++ ;
if (vowel_1 < vowel_2)
return -1 ;
else if (vowel_1 > vowel_2)
return 1 ;
else
return (strcmp(word_1
, word_2
)) ;
}
int main(void)
{
char input[100][80] ;
int i = 0 ;
int j ;
while (scanf("%s" , input
[i
]) != EOF
) i++ ;
#ifdef print_input
for(j = 0 ; j < i ; j++)
#endif
qsort(input
, i
, sizeof(char) * 80 , compare
) ;
for(j = 0 ; j < i ; j++)
return 0 ;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CiNpbmNsdWRlPHN0cmluZy5oPgojaW5jbHVkZTxjdHlwZS5oPgoKLy8jZGVmaW5lIHByaW50X2lucHV0Ci8vI2RlZmluZSBkZWJ1Z191cHBlcgoKaW50IGlzdm93ZWwgKGNoYXIgYWxwaGFiZXQpCnsKICAgIGlmIChhbHBoYWJldCA9PSAnQScgfHwgYWxwaGFiZXQgPT0gJ0UnIHx8IGFscGhhYmV0ID09ICdJJyB8fCBhbHBoYWJldCA9PSAnTycgfHwgYWxwaGFiZXQgPT0gJ1UnKQogICAgICAgIHJldHVybiAxIDsKICAgIGVsc2UgaWYgKGFscGhhYmV0ID09ICdhJyB8fCBhbHBoYWJldCA9PSAnZScgfHwgYWxwaGFiZXQgPT0gJ2knIHx8IGFscGhhYmV0ID09ICdvJyB8fCBhbHBoYWJldCA9PSAndScpCiAgICAgICAgcmV0dXJuIDEgOwogICAgZWxzZQogICAgICAgIHJldHVybiAwIDsKCn0KCgppbnQgY29tcGFyZShjb25zdCB2b2lkKiBwdHIxICwgY29uc3Qgdm9pZCogcHRyMiApCnsKICAgIGNoYXIqIHdvcmRfMSA9IChjaGFyKiApcHRyMSA7CiAgICBjaGFyKiB3b3JkXzIgPSAoY2hhciogKXB0cjIgOwoKICAgIGlmIChzdHJsZW4od29yZF8xKSA8IHN0cmxlbih3b3JkXzIpICkKICAgICAgICByZXR1cm4gLTEgOwogICAgZWxzZSBpZiAoc3RybGVuKHdvcmRfMSkgPiBzdHJsZW4od29yZF8yKSkKICAgICAgICByZXR1cm4gMSA7CgogICAgaW50IGkgOwogICAgaW50IHN1bV8xID0gMCA7CiAgICBpbnQgc3VtXzIgPSAwIDsKCiAgICBmb3IoaSA9IDAgOyBpIDwgc3RybGVuKHdvcmRfMSkgOyBpKyspCiAgICAgICAgaWYgKGlzdXBwZXIod29yZF8xW2ldKSApCiAgICAgICAgICAgIHN1bV8xICsrIDsKCiAgICBmb3IoaSA9IDAgOyBpIDwgc3RybGVuKHdvcmRfMikgOyBpKyspCiAgICAgICAgaWYgKGlzdXBwZXIod29yZF8yW2ldKSApCiAgICAgICAgICAgIHN1bV8yICsrIDsKCiAgICAjaWZkZWYgZGVidWdfdXBwZXIKICAgIHByaW50ZigiJXMgaGF2ZSAlZCB1cHBlclxuIiAsIHdvcmRfMSAsIHN1bV8xKSA7CiAgICBwcmludGYoIiVzIGhhdmUgJWQgdXBwZXJcbiIgLCB3b3JkXzIgLCBzdW1fMikgOwogICAgI2VuZGlmCgoKICAgIGlmIChzdW1fMSA8IHN1bV8yICkKICAgICAgICByZXR1cm4gLTEgOwogICAgZWxzZSBpZiAoc3VtXzEgPiBzdW1fMikKICAgICAgICByZXR1cm4gMSA7CgogICAgaW50IHZvd2VsXzEgPSAwIDsKICAgIGludCB2b3dlbF8yID0gMCA7CgogICAgZm9yKGkgPSAwIDsgaSA8IHN0cmxlbih3b3JkXzEpIDsgaSsrKQogICAgICAgIGlmIChpc3Zvd2VsKHdvcmRfMVtpXSkgKQogICAgICAgICAgICB2b3dlbF8xICsrIDsKCiAgICBmb3IoaSA9IDAgOyBpIDwgc3RybGVuKHdvcmRfMikgOyBpKyspCiAgICAgICAgaWYgKGlzdm93ZWwod29yZF8yW2ldKSApCiAgICAgICAgICAgIHZvd2VsXzIgKysgOwoKICAgIGlmICh2b3dlbF8xIDwgdm93ZWxfMikKICAgICAgICByZXR1cm4gLTEgOwogICAgZWxzZSBpZiAodm93ZWxfMSA+IHZvd2VsXzIpCiAgICAgICAgcmV0dXJuIDEgOwogICAgZWxzZQogICAgICAgIHJldHVybiAoc3RyY21wKHdvcmRfMSAsIHdvcmRfMikpIDsKCgoKCgoKfQoKaW50IG1haW4odm9pZCkKewogICAgY2hhciBpbnB1dFsxMDBdWzgwXSA7CiAgICBpbnQgaSA9IDAgOwogICAgaW50IGogOwoKICAgIHdoaWxlIChzY2FuZigiJXMiICwgaW5wdXRbaV0pICE9IEVPRikKICAgICAgICBpKysgOwoKICAgICNpZmRlZiBwcmludF9pbnB1dAogICAgZm9yKGogPSAwIDsgaiA8IGkgOyBqKyspCiAgICAgICAgcHJpbnRmKCIlcyBcbiIgLCBpbnB1dFtqXSkgOwogICAgI2VuZGlmCgogICAgcXNvcnQoaW5wdXQgLCBpICAsIHNpemVvZihjaGFyKSAqIDgwICwgY29tcGFyZSkgOwoKICAgIHByaW50ZigiQWZ0ZXIgc29ydGVkIFxuIikgOwogICAgZm9yKGogPSAwIDsgaiA8IGkgOyBqKyspCiAgICAgICAgcHJpbnRmKCIlcyBcbiIgLCBpbnB1dFtqXSkgOwoKCgoKCgogICAgcmV0dXJuIDAgOwp9CgoKCg==