Hatena::Grouptopcoder

TopCoderの問題を解く

解いた問題の一覧表

2009-09-04

PassingGrade

| 17:21

メイン(?)ブログの方にGoogle Code Jam 2009 - Qualification Roundの参戦記録は書いた。結果は約1時間半で全問解けて、65位。

問題文, SRM 185

How To Dissect a TopCoder Problem Statement -- Algorithm Tutorialsから。

期末テストで単位を得るためにとらなければならない最低点数を求める。単精度では精度が足りないらしく、落とされた。

204.22/250 (1 failed)

class PassingGrade {
public:
    int pointsNeeded(vector <int> pointsEarned, vector <int> pointsPossible, int finalExam) {
        int totalEarned = accumulate(pointsEarned.begin(), pointsEarned.end(), 0);
        int totalPossible = accumulate(pointsPossible.begin(), pointsPossible.end(), 0) 
            + finalExam;
        int minimum = (int) ceil(0.65l*totalPossible - totalEarned);
        if (minimum > finalExam) return -1;
        else if (minimum < 0) return 0;
        else return minimum;
    }
};