2011年8月13日土曜日

TopCoder SRM217 Div2 250Pts

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

車で長旅をしたいと考えているが、限られた燃料しかない。いま1時間ある速さで車を走らせたときに消費する燃料を知っているので、一番長い距離を走ることができる最適な速度を知りたいとする。時速を表すvelocities[]と1時間に消費するガソリンのリットル量consumptions[]、車に入っているガソリンのリットル量fuelが与えられている。velocities[i]とconcumptions[i]は対応関係にあるものとする。このとき、最大で何キロ車を走らせるかを返すメソッドを作成せよ。

私の解答は以下の通り。

public class FuelConsumption {
 public double maximalDistance(int[] velocities, int[] consumptions, int fuel) {
  double maxKM = -1;
  for( int i=0 ; i<velocities.length ; i++ ){
   double dist = (double)velocities[i]/consumptions[i]*fuel;
   if( dist > maxKM ) maxKM = dist;
  }
  return maxKM;
 }
}

得点は244.73/250。解答提出者の正解率は約96%。気を付けることはdoubleにキャストするのを忘れてはいけないという程度だろう。

0 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計