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

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

TopCoderのPracticeRoomsでコンパイルできなくなった

2012年09月29日 23時12分42秒 | TopCoder
なんか楽しくなってしまい、ほぼ一日中TopCoderのSRMの過去問をやっていて、
DIV2の1000-point problemがようやく解けたーってところで眠くなって寝てしまい、
起きて画面見たらなんかよくわかんないエラーが。

その後、コードを書いてコンパイルしようとすると

「you cannot compile in a contest that is not active」

といエラーが出てきて、CompileもTestもSubmitもできない状態に。
15分置きくらいにコンパイルできないか試しながら、すごい切ない気分で数時間過ごしました。
もう諦めてエラー内容だけブログに書いて寝ようと思い、この文章を書いていたのですが、
書きながらも試してたらなんかコンパイルできるようになりました。


コンパイルできない状態になったのは約6時間くらい。
あんまり続けてPracticeRoom使いすぎるなってことなのでしょうか。

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;
}
}