Hatena::Grouptopcoder

TopCoderの問題を解く

解いた問題の一覧表

2009-08-21

WordForm

| 17:15

問題文, SRM 173

与えられた文字列は、どのような母音と子音の組み合わせから成るのか。

468.65/500

class WordForm {
public:
    string getSequence(string word) {
        string sequence;
        bool isPreVowel = false;
        for (int i = 0; i < word.length(); i++) {
            const char c = toupper(word[i]);
            bool isVowel = (i!=0 && !isPreVowel && c=='Y') ||
                c=='A' || c=='E' || c=='I' || c=='O' || c=='U';
            if (i == 0 || isVowel != isPreVowel) {
                if (isVowel) sequence += "V";
                else sequence += "C";
                isPreVowel = isVowel;
            }
        }
        return sequence;
    }
};

2009-08-20

ProgressBar

| 17:36

問題文, SRM 173

インストール作業の進捗具合を示すプログレス・バーを表示する。

240.19/250

class ProgressBar {
public:
    string showProgress(vector <int> taskTimes, int tasksCompleted) {
        int total = accumulate(taskTimes.begin(), taskTimes.end(), 0);
        int completed = accumulate(taskTimes.begin(), 
                taskTimes.begin()+tasksCompleted, 0);
        double percent = static_cast<double>(completed) / total;
        string progress(20, '.');
        for (int i = 0; i < floor(percent*20); i++)
            progress[i] = '#';
        return progress;
    }
};