最近のTopCoderについて思うこと

広告

5年くらい前にTopCoderをちょっとだけやっていました。成績は大したことないけど。最近ふと話題に上って見てみたのですが、いくつか気づいた点について。

TopCoderはオンラインジャッジの競技プログラミングです。たぶんかなり走りの部類です。オンラインジャッジというのは、問題が出題されて、競技者はそれを解くプログラムを書いて提出し、TopCoderのシステムがテストケースを入力して全部正しい答えを出すと合格とするシステムです。最近では他にも色々な競技プログラミングサービスがあります。

TopCoderはJavaで書かれたARENAというシステムを使って競技をしていました。他のサービスはだいたいWebで全部できます。TopCoderもWebベースのARENAが最近(やっていないうちに)登場しましたが、まだベータ版で未完成かつ不安定な印象があります。もしかすると、ちゃんとしたシステムを組むほどの力がTopCoder社にはないんじゃないかと不安になります。

TopCoderのJavaアプリはそのまま使う人はあまりいないようです。大抵は便利なプラグインと組み合わせて使います。つまり準備が面倒くさいのです。TopCoderを始めるぞと思った新人さんがちゃんと競技できるところまで行くのは結構難しいのではないでしょうか。最近ではGreedというプラグインが人気のようですが、3年くらい前に出たっきりです。完成されているからメンテする必要がないとも言えますが、率直に言ってそんなによくありません。プラグイン込みで考慮しても他の競技プログラミングサイトのほうがずっと使いやすい。

最近、SRM705をやってみました(過去問です)。Div 2 Easyは簡単でしたが、Div 2 Mediumは結構難しいです。また、Div 1 Easy = Div 2 Mediumであることが多いです。仕方がないので解答を探してみたのですが、以前ほどブログにTopCoderの解法を書いている人が多くない気がします。偶然SRM705が参加者が少なかっただけかも知れませんが、ここ最近の参加者はTopCoderのStatisticsを見ても昔の1/3くらいのようです。

Div 2 Mediumの解法を見てみたら極めてシンプルなプログラムが載っていました。載せるくらいだから本番でごちゃごちゃ書いたものをきれいに直して載せるのかもしれませんが、見事でした。解説によるとdp(動的計画法)とワーシャルフロイド法のようです。Div 2 Easyは個人的にはとても簡単で、次のステップになると難しすぎるというのが今のTopCoderの印象です。一番簡単な問題と二番目に簡単な問題の落差が大きすぎる。

いつもやっている人はワーシャルフロイド法くらいは何十回も書いていて暗記するほどかも知れないし、もしかすると手元にワーシャルフロイド法のスニペットを持っているかも知れません。だから問題を見たら短時間でコードを書いて提出できるのかも知れないけど、個人的には難しすぎるかなと思いました。TopCoderはdpが好きみたいでこれをモノにしないと次の段階に行けない感じ。出題者はそれこそDiv 1 Hardでも楽々解くような人ですから塩梅がわからないのかも知れません。他のサービスで言うとPaizaのランクAくらいの難しさであっていいと思います。

少し前にTopCoder社が求人を出していたのですが、その際にビザのサポートはできないとありました。やはり会社としてはずいぶん小さいのかも知れません。