TopCoderのプラグイン導入

いつも参考にさせていただいていたプラグインの導入サイトが見られなくて困っていたので、備忘録としてここに残すことにします。同じように困っている人は参考にしてください。

Arenaのダウンロード

まずは、Arenaのダウンロードを行う。以下のページから、直接Arenaのjnlpをダウンロードすることができる。直接開けない場合は、「TopCoder Arena」で調べれば出てくる。

https://community.topcoder.com/contest/arena/ContestAppletProd.jnlp

ContestAppletProd.jnlpを適当なフォルダに置いてから、実行&ログインする。

C++プラグイン (CodeProcessor+TZTester+FileEdit)

プラグインのダウンロード

Plugin紹介ページから

  • TZTester.jar
  • FileEdit.jar
  • CodeProcessor.jar

をダウンロードする。これらを適当なフォルダに入れる。

プラグインの設定

Arenaの上部メニューから「Options → Editor」を選ぶ。「Editor Preferences」というタイトルのウィンドウが開く。
「Browse」ボタンを押して、先ほどダウンロードしたTZTester.jar, FileEdit.jarのパスを追加する。
「Add」ボタンを押すと、「Enter Plugin Information」というウィンドウが出てくる。ここで、次のように各項目を入力する。

Name: CodeProcessor
EntryPoint: codeprocessor.EntryPoint
ClassPath: CodeProcessor.jarのパスを「Browse」で参照して追加

「OK」ボタンを押すと、「Editors」のメニューの中に今入力した項目が追加される。追加された項目の「Default」チェックボックスと「At Startup」チェックボックスにチェックを入れる。
「CodeProcessor」が選択された状態で、「Configure」ボタンを押すと、「CodeProcessor Configuration」というウィンドウが開く。
次の項目を記入し、「Configure」ボタンを押す。

Editor EntryPoint: fileedit.EntryPoint

「FileEdit Configuration」というウィンドウが開く。
「General」タブの「Enter directory to read/write problems to」に自動生成されるプログラムを置かせたいパスを指定する。このパスは、絶対パスもしくは、ContestAppletProd.jnlpが存在するパスからの相対パスで指定することができる。つまり、「./」と入力した場合、ContestAppletProd.jnlpと同じディレクトリに、プログラムが自動生成される。

「Code Template」タブに移り、Templateファイルを記述する。
筆者の場合は、以下のように記述している。

// ζ*'ヮ')ζ < 落とさないでくださいぃ...
#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <algorithm>
#include <set>
#include <sstream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cctype>
#include <climits>
using namespace std;

typedef long long ll;
#define foreach(itr,c) for(__typeof(c.begin()) itr=c.begin();itr!=c.end();itr++)

class $CLASSNAME$ {
public:
$RC$ $METHODNAME$($METHODPARMS$) {

}
$TESTCODE$
};
// BEGIN CUT HERE
int main() {
  $CLASSNAME$ ___test;
  ___test.run_test(-1);
}
// END CUT HERE

「$TESTCODE$」を書いておくと、サンプルをテストするプログラムを自動生成してくれるので、非常に便利。上記のようなmain文を書くことでテストを実行することが可能。
「// BEGIN CUT HERE」から「// END CUT HERE」までは、プログラムをTopCoderに提出する際に自動的に削除されるようになっている。提出してはまずいコードは、この中に書くようにすること。

Templateのコードが書けたら、「Save」ボタンを押して設定を保存する。「Close」ボタンでこのウィンドウを閉じる。

「CodeProcessor Configuration」のウィンドウで、さらに次のように入力する。

Processor Class: tangentz.TZTester

「Verify」ボタンを押して、foundが3つ出ていればOK。

以上で、設定は終了。
「Save」ボタンを押して、「Close」ボタンを押して、設定のウィンドウを全て閉じる。

使用方法

Arenaで解きたい問題を開く。
そうすると、設定時に指定したフォルダに、Templateのプログラムが自動生成される。
このプログラムをローカルで編集して、保存してから、ArenaでCompileを行うと、「BEGIN CUT HERE - END CUT HERE」部分を切り取ったコードがArenaにも読み込まれる。
ローカルでCompileして実行すると、サンプルをテストして、正しい結果が出ているか確認してくれる。

参考

Javaプラグイン

  • TODO: 書ければ