TopCoderはTopCoder社が主催する競技プログラミングコンテストの総称である。
概要
「Single Round Match (SRM)」「Marathon Match」「Bug Race」等の種目からなり、現在世界で最も勢いのある競技プログラミングコンテストの一つである。単にTopCoderと言う場合にはSRMを指すことが多い。
TopCoderの各種目に参加すると自分のプログラミングの腕前を表すレーティングと呼ばれる数値が付けられる。特に一定以上のレーティングを持ち、名前が赤で表示されている人物は「レッドコーダー」と呼ばれており、他の参加者から尊敬の眼差しで見られている。なお、日本人でレッドコーダーの称号を持っている人物は15人程度しか存在しない。
TopCoderは一部企業のリクルートにも利用されており、TopCoder枠なる採用枠がある企業もあると噂されている。
Single Round Match (SRM)
SRMはアルゴリズム部門に属し、TopCoderのメインとなる種目である。短時間で行われるコンテストで、短い実行時間で答えを計算することのできる問題が出題される。問題文を閲覧してからプログラムを提出するまでの時間が短い方が高得点となるが、1つでも要求された仕様を満たしていない部分があるとその問題は0点となる。SRMで使用可能な言語はC++/Java/C#/VBの4種類。
2010年現在、SRMは毎月3回開催されている。開催スケジュールは公式ホームページ
のイベントカレンダー
に掲載されている。(ただし、基本的にアメリカ東部標準時、又は、アメリカ東部夏時間で書かれていることに注意)
選手はDivision 1 (一軍)とDivision 2 (二軍)に分けられ、レーティング1200以上の選手は一軍、それ以外は二軍として参加する。
各SRMに付きLevel 1 (簡単、Easy)、Level 2 (普通、Middle)、Level 3 (難しい、Hard)の3問が出題される。一軍と二軍とで出題される問題セットは異なるが、一軍のEasyと二軍のMiddleは共通問題であることが多い。
SRMへの参加は公式ホームページからダウンロードできる専用のGUIから行う。
SRMは以下の手順で行われる。
- Registration 参加登録。本番開始3時間前から始まり、5分前に終了する。
- Coding Phase コーディングフェイズ。75分間。問題の閲覧、コーディング、提出を行う。
- Intermission 休憩。5分間。
- Challenge Phase 撃墜フェイズ。15分間。同じ対戦部屋の他の選手の提出したプログラムを閲覧し、それらのプログラムのバグを指摘する入力データを提示する。撃墜に成功した場合にはボーナス点が得られるが、失敗した場合はペナルティが加わる。
- System Test システムテスト。審判団が用意した入力データにより採点が行われる。採点により正しいと判定された問題について得点が得られる。
Marathon Match
Marathon Matchは比較的長期間にわたるコンテストで、厳密に解を求めることができないであろう問題が出題される。得点の計算方法は問題によって異なるが、基本的にはより良い近似解を求めると高得点が得られる。Marathon Matchで使用可能な言語はC++/Java/C#/VB/Pythonの5種類。
SRMと同様に、開催スケジュールは公式ホームページのイベントカレンダーに掲載されている。開催期間は基本的に1週間または2週間である。
関連動画
関連商品
関連コミュニティ
関連項目
- ACM/ICPC (International Collegiate Programming Contest)
- KMCoder
- IEEEXtreme
- GCJ (Google Code Jam)
- ICFP Programming Contest
- PKU Judge Online
- International Maximum-Cup
- AtCoder
- 3
- 0pt

