drkcore

2008/06/19 20:18:10

SRM182-DIV2-250

7段階評価の予測と実測のズレの頻度を求める

using namespace std;
class IBEvaluator {
public:
  vector <int> getSummary(vector <int> predictedGrades, vector <int> actualGrades) {
    vector <int> diffGrades;
    vector <int> summary;

    int total = predictedGrades.size();

    for (int i=0;i<total;i++){
      diffGrades.push_back( abs(predictedGrades[i]-actualGrades[i]) );
    }

    for (int j=0;j<7;j++){
      int count = 0;
      for(int k=0;k<total;k++) if(diffGrades[k] == j) count++;
      summary.push_back( (int) (((double) count / total) * 100) );
    }
    return summary;
  }

最初からベクターの大きさがわかっている場合、最初に初期化しておいて

total[abs(predictedGrades[i]-actualGrades[i])]++;

と書けるという事を赤色のヒトの解答をみて知った。

Comments