2012年7月13日金曜日

TopCoder SRM408 Div2 250Pts

このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題文について意訳で説明する。

思考チャレンジオリンピックの審判として雇われた。仕事は、一連の種目における競技者のパフォーマンスに基づいて合計点を計算することである。各種目で、競技者の生のスコアが与えられる。合計点は各種目に対して調整したスコアの和になる。各種目の調整スコアを計算するために、生のスコアを換算係数で割り、その値に最も近い整数に丸めるということを行う(小数点第一位で四捨五入する)。rawScores[]という一人の競技者の生のスコアと、conversionFactor[]という換算係数が与えられる。それぞれのi番目がi番目の種目のスコアと換算係数に対応している。競技者の合計点を返すメソッドを作成せよ。

私の解答はこちら。

public class TournamentJudging {

 public int getPoints(int[] rawScores, int[] conversionFactor) {
  int pts = 0;
  for( int i=0 ; i<rawScores.length ; i++ ){
   pts += Math.round(rawScores[i]*1.0 / conversionFactor[i]);
  }
  return pts;
 }

}

得点は248.13/250、1回のsubmitでシステムテストクリア。ひっかかるとすれば、割り算するときに実数に一旦変換するために1.0を掛けるのを忘れないことぐらいでしょうか。おそらく問題文を解読することの方が、コーディングよりも時間がかかっています。

0 件のコメント:

コメントを投稿

フォロワー

ページビューの合計