AtCorderとは?
競技用プログラムコンテスト。
AtCoderJobs
AtCorderのスコアを、プログラミング能力を示す客観的指標に採用していく企業が増えていくかも。日本の多重請負の上層側のIT技術者は、戦々恐々かも。
いつ開催してる?
基本的には土曜or 日曜のPM21時が多いみたい。それ以外は、ランダムで企業から賞金付きコンテストが開催される。直近だと、アスプローバ株式会社が開催するマラソン型のプログラミングコンテストで上位者には賞金あった。
どんなコンテストがある?
AtCoder Beginners Selection(ABS)
初心者が、AtCorderの練習用に準備された常設コンテスト。自分のスコアには反映されない。
AtCoder Beginner Contest(ABC)
現役のコンテスト。2週間に一回開催される。自分のスコアに反映される。
AtCoder Regular Contest(ARC)
最近の開催履歴をみると、今は開催されてないみたい。2018年9月に開催されたAtCoder Regular Contest 103から更新とまってる感じ。
AtCoder Grand Contest(AGC)
上位版コンテスト?なのかな。不定期(1か月くらい?)に開催されてる。自分のスコアに反映される。
ルール
回答時間
正解者が複数人いる場合は、回答時間の短いほうが点数が高くなる。
ペナルティ
不正解を提出すると、提出時間にペナルティがつきます。ただし、コンパイルエラー(CE)のときはペナルティがつかない。ゆえに、中途半端にエラーが出ずに誤答を出力するプログラムのほうがまずい。
コンテスト開催中のSNS
コンテストの公平性を保つために絶対厳禁! 開催後の解説などやOK。下記サイトでコンテスト後に解説やってくれてる。
https://www.youtube.com/channel/UCtG3StnbhxHxXfE6Q4cPZwQ
やってみた
ABS(AtCorder Begineers Selection)をやってみた。全13951の参加者で全問クリアは上位3000人くらい。練習用でも、回答時間が開始時点からの時間が計測されてたみたい。AtCorderのサイト閲覧すると、右下に時間を表示するウィジェットみたいなのがそれ。
とりあえず空き時間でやってみてたので、日をまたいでいた。一応、全問、自力でクリアした。久々にプログラミングしたから楽しかった。今回はC言語でやったけど、Pythonの習得用に次回からPythonでやってみる。
TLE
TLE (Time Limit Exceeded)。実行時間2秒の時間内に正解を導出できないプログラムだと、正解でもこの判定を受けます。高速化アルゴリズムにしないといけない。TLEにかかりにくい言語としては、感覚的に、JavaScript < Python< Pypy3 << C++ かな。最初にTLEでこけたのは、ABC137-D Summer Vacation。優先度付きキューが必要だった。
過去問
過去問開示されてるので、本番用のテンプレートコードの準備用によいかも。
感想
素直に面白い!一見、難しそうに感じる問題も、物事を整理して考え、着眼点をいろいろ変えてみると、シンプルな解法にたどり着ける謎解き感覚が面白い。さらに、上位の問題は数学の勉強にもなる。