Ranking (as of 2013-06-08): 165 out of 848
Language: C++
/* UVa 10785 - The Mad Numerologist To build using Visual Studio 2008: cl -EHsc -O2 the_mad_numerologist.cpp */ #include <iostream> #include <algorithm> #include <cstring> using namespace std; int main() { const int n_max = 210, vowels_usage_max = 21, consonants_usage_max = 5; const char vowel_letters[] = {'A', 'U', 'E', 'O', 'I'}; const char consonant_letters[] = {'J', 'S', 'B', 'K', 'T', 'C', 'L', 'D', 'M', 'V', 'N', 'W', 'F', 'X', 'G', 'P', 'Y', 'H', 'Q', 'Z', 'R'}; int nr_cases; cin >> nr_cases; for (int c = 1; c <= nr_cases; c++) { int n; cin >> n; int nr_vowels = (n + 1) / 2, nr_consonants = n / 2; char vowels[n_max + 1], consonants[n_max + 1]; for (int i = 0, j = 0; i < nr_vowels; j++) { int k = min(nr_vowels - i, vowels_usage_max); memset(vowels + i, vowel_letters[j], k); i += k; } for (int i = 0, j = 0; i < nr_consonants; j++) { int k = min(nr_consonants - i, consonants_usage_max); memset(consonants + i, consonant_letters[j], k); i += k; } sort(vowels, vowels + nr_vowels); sort(consonants, consonants + nr_consonants); char name[n_max + 1]; for (int i = 0; i < nr_vowels; i++) name[2 * i] = vowels[i]; for (int i = 0; i < nr_consonants; i++) name[2 * i + 1] = consonants[i]; name[nr_vowels + nr_consonants] = '\0'; cout << "Case " << c << ": " << name << endl; } return 0; }
No comments:
Post a Comment