TopCoder SRM練習支援スクリプト AirSRM

https://github.com/kawakami-o3/AirSRM

TopCoder SRM(以下、SRM)での練習はほぼ日課と化していたのですが、10月頃からだったか、practice roomに入れないことが度々発生するようになりました。この問題は多くの方が経験されたようで、12月1日にはサーバのリプレースなどの対処がなされたようです(詳しくはforum参照)。以降一部の部屋には入れるようになりましたが、それでもまだアクセスできないところもあるようです。

SRMで練習する時は TopCoder Competition Arena にいくつかのプラグイン(FileEditやExampleBuilder)を使用していますが、主に使っている機能は以下のようになります。

  • 問題文の取得
  • システムテスト
  • 上位陣のコード取得
  • 雛形コードの生成
このうち、上位 3 つはcommunity.topcoder.comにアクセスすることで情報収集することができます。雛形コードについては雛形化している部分が多くないこともあり、一問あたり2, 3分もあれば手で打ち込むこともできます。つまり、部屋に入れなくても、大体は問題なく練習できるということになります。

ただ一点、面倒になってしまうのはやはりシステムテストです。ウェブにアクセスすることでパラメータを取得することは出来ますが、全てをテストするコードを書くのは大変手間がかかってしまいます。実のところ、このためだけに部屋に入っているといっても過言ではないかも知れません。

この問題を解決するべく組んだのが AirSRM です。
% ruby AirSRM.rb --srm=525 --div=2 --lv=1 --systemtest
とコマンドを打つだけで 、SRM 525 Div 2 Easyのシステムテストコードを生成し、ローカルで擬似システムテストを行うことが出来るようになります。

ただ、もともとシステムテストをしたかっただけで、他が結構お座なりで現在のところJavaしか対応していません(テンプレートを差し替えれば割と簡単に C# にも対応できるはず。。。いつか修正します)。

コメント

このブログの人気の投稿

git-svnでFILE was not found in commit HASH

神スクリプトの使い方 Codeforces編

JavaでIRCクライアント