ソフトウェア開発したい日記

「面白い!」と思った頭の体操や、数学の問題を載せていきます
その他ロードバイクででかけた先の写真や、ソフト開発のメモ等

TopCoderに登録

2012年09月28日 21時51分03秒 | TopCoder
だいぶ久しぶりの投稿。

TopCoderに登録して、Practiceで何問か遊んでみました。

今回初めての競技プログラミングということで、とりあえずDIV2(簡単なほう)の250-point problem(簡単なやつ)を選択。

英語があまり読めなくて、これはダメか・・と思いましたが、
Problem Statementが読めなくても、Examplesの項目で入力例と出力例があって、ここから大体推測可能でした。

何問か解いていたら、200~230点/250点くらいとれるようになってきたので、
今日の〆に、500-point problem(SRM 146 DIV 2)に挑戦しました。


短かったけれど英文はほとんど読まず、Examplesに目を通すと、
どうやら格子の幅と高さが与えられて、その中に存在する長方形の数を数えろと言っているみたい。

悩んだ結果、下記のようなソースコードが書きあがり、428.67 points貰えました。
500点問題初クリア。うれしい。

public class RectangularGrid{
public long countRectangles(int width, int height){
long count = 0;
for (int i = 1; i <= width; i++){
for (int j = 1; j <= height; j++){
if (i == j) continue;
count += (width - i + 1) * (height - j + 1);
}
}
return count;
}
}



最新の画像もっと見る