JavaScriptで競技プログラミング

今日はちょっと暇だったのでPythonでAOJをやってたんです。
んで、他にどんな言語が使えるんだろーと思って見たらJavaScriptがあったわけですね。
これはやるしかないと思い始めたらなかなか苦戦しました。

まず、JavaScriptで標準入力/出力ってどうやるの?って事でAOJのSystemInfoを見たところ、コンパイラにnode.jsを使っているらしいです。
なので、まずはnode.jsをインストールします。
次にVisualStudioで使えるように設定します。
まずはASP.NET空のWebプロジェクトを作ります。
そしたらとりあえずmain.jsを作って、ここにコードを書くことにします。
このままだと実行するとwebブラウザが起動するので、Webサイト→開始オプションで「外部プログラムの開始」を選びます。
外部プログラムはcmd.exe、作業ディレクトリはmain.jsがあるフォルダ、コマンドライン引数には「/k node main.js & pause & exit」を入れます。
このままだとインテリセンスが効かないのでNode.js IntelliSense for Visual Studioを使います。

次にプログラムの書き方について。
標準出力はconsole.log()でいいっぽいです。
標準入力はちょっと面倒で、process.stdinを使いました。

というわけでAOJ10001をJavaScriptで書くとこんな感じになります

/// <reference path="nodelib/node.js"/>

process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (chunk)
{
	var x = parseInt(chunk.trim(), 10);
	console.log(x * x * x);
});

多分もっといい方法があると思うので知ってたら教えてくだされ~