Google Code Jam 個人的な意見

勝つためにどうすれば良いか、いろいろ考えてみた。


・言語はどれが一番適しているだろうか


個人的にはC++が良いだろうと思う。
まぁ、選べる言語がC++,C#,Java,VB.netな時点で、
どれを選んでも大して変わらんのだけど。
この中では唯一まともに多相型が扱えるC++が不要なキャストを減らせて
一番まともではないか?
GCの無いのは大して問題にならない。
この程度の規模の問題でオブジェクトのライフタイムが非確定的
であるべき様なものはまずない。
というか、そもそも動的にオブジェクトを生成する必要すらない場合が多い。
動的にオブジェクトを作る必要のある代表的な例はツリーだろうか。
ツリーは参照関係が単純なので、デストラクタで子をdeleteして問題ない場合が
ほとんどなので、これもGCが無いことは問題にならないだろう。
でも、C++にはトークナイザがないよね?という方がおられるかもしれないが、
だいじょうぶ。われわれにはistringstreamという強い味方が付いている。
文字列の解析はこれでばっちり。


ただ、多倍長整数などが必要になったときは素直にJavaを使うべきだろう。
STLには多倍長整数が無いので…
まぁ、そんな問題が出るとは思えないが。


ああ、あと、C++だとサンプル入力が大変入力しにくい。
ここだけはどうにかしたい。
Javaなどだと普通に配列の初期化とかでできると思う。


・マクロをいっぱい準備するべきなのか


個人的には必要ないと思う。
FORループを少々稼いだりしたところでどうしようもないだろう。
for(map,set