競技プログラミングをやってきた - はまやんはまやんはまやん

はまやんはまやんはまやん

hamayanhamayan's blog

競技プログラミングをやってきた

この記事は競プロ Advent Calendar 2021の10日目の記事です。

長年、競技プログラミングをやってきた。

気が付けば、最初に競技プログラミングを初めてから既に6年が過ぎていた。
別にこの記事を何らかの区切りにしようとか、そういった意図はないのだが、振り返るには良い時期なのかもしれない。

2015年 競技プログラミングに出会う

研究室に入ったタイミングで競技プログラミングの勧誘を受けた。これが競技プログラミングとの出会いである。思い出というのはいつまでも覚えているもので、金沢市内にあるカレー屋でのことだった(もう既に閉店している)。先輩方から「IPCPに出てみないか」と言われたのを鮮明に覚えている。実はこの研修室には競プロの有名人が在籍しており、その人のおかげで研究室には競技プログラミングの流れがあった。本当に奇跡的であり、感謝しきれない。今も色々すごいことをしているすごい人なのだが、ハンドル名を出していいか分からないので出さないでおく。本人から出していいよと言われたら出す。最初のICPCは正直どんな感じだったかよく覚えていない。覚えていないのだが、ICPCの国内予選に落ちたことと、先輩にかなり失礼な発言をしたことは覚えている。(今になって反省はしています)ICPCの国内予選に落選して、競技プログラミングに火が付いたというか、来年のICPCが目標となったことは間違いない。

2016年 ICPCを目指して

この年はICPCの本選に行くことができた。ギリギリで予選通過して、とても盛り上がったのを覚えている。本線では賞をもらうこともでき、とてもいい思い出となった。ブログを振り返ってみると2016-03-29が最初の解説投稿だったようだ。当時はAOJ(Aizu Online Judge)やyukicoder、CodeForcesといった解説が無いか薄いものに対して解説を書いていたように思う。どういったモチベーションで書き始めたかは正直覚えていないが、kmjpさんのブログをよく見ており、その真似を始めたことが始まりであることは覚えている。

kmjp's blog

kmjpさんは自分のヒーローの一人であり、競プロ解説ブロガーのキングである。自分よりも長く、そして扱う問題は難しいという完全上位互換で、かつ、まだまだ走り続けている競プロerである。2016年のおわり頃からまとめ記事の公開を始めた。元々、まとめ作業は行っていて、公開予定も無かったのだが、手元で腐らせておくのも持っていないので、雑に公開することにした。

2017年 まとめる日々

修士2年になった。研究しろという話なのだが、この頃から段々まとめ作成に力が入ってくる。(研究はしてましたよ?)競プロを初めて既に2年が経過していたが、まだまだ学習することは多かった。大量にまとめを作成していたが、このほとんどは自分の学習用だった。まとめを作ることで界隈に少しでも貢献できるし、学習もできるということで一石二鳥くらいのモチベーションでやっていた。この時が一番競プロをやっていた楽しい時期だったかもしれない。新しく得られる知識に喜びを感じ、アルゴリズムの面白さを実感していた。この時代にも自分のヒーローがいる。最近の人は知らないかもしれないがantaさんである。

あんたさん (@anta_prg) / Twitter

数少ないTopCoderのTargetであり、アルゴリズムとデータ構造の強者である。鮮明に覚えているのが、CodeForcesでantaさんが優勝した回である。誰も解いていない問題を想定解ではなく、どこかの論文から拾ってきた謎のデータ構造を使って爆速で解いていた。知識で殴るとはこのことであり、卓越した知識量を持ってすればTargetになれるんだなと思った記憶がある。

2018年、2019年 社会人になって

社会人になってしまった。まとめも一段落したが、解説は続けていた。何をモチベーションに続けていたのかは全く覚えていないのだが、まだまとめる内容も微妙にあったし、知らないテクニックを少しはあったので、やっていて身になる感じがあった。この頃を振り返ってみると、競プロ解説界に2大巨頭がやってきた時期だったようだ。けんちょんさんとbetrue12さんである。

けんちょんの競プロ精進記録
ARMERIA

どちらも解説が丁寧で、普通に読者として楽しんで見ていた。この2人は書籍執筆という金字塔を後々成し遂げるのだが…まあ、それはこれを読んでいる人なら皆知っているだろう。このくらいから競技プログラミング能力の限界を感じてくる。時間的余裕もなく、かといって地頭があるわけでもないので、レーティングの限界を感じていた。だが、レーティングはそこそこあったので、もう余生は後続育成というか解説を書くことで界隈に貢献できればいいかなくらいのモチベーションになっていた。

2020年、2021年 晩年

社会人3年目。このあたりから競プロにフルコミットするのがきつくなってくる。色々忙しくなってきて、すべてのコンテストに出られなくなってきたというのと、ちょっとずつCTFに時間をとられ始め、AtCoderしか出なくなってきた。この年って俺は何をしてたんだろう。何に打ち込んで何を考えて何をしていたのか全く覚えていない。多分頑張って仕事してたんでしょう。とりあえず、セキュリティが面白くなり、転職。セキュリティばっかりやっているようになる。転職後も競技プログラミングの解説は続けていたが、かなり最小限の力量でやっていた。CTFの解説も増えてきて、競技プログラミングからは少し…離れてきたかもなぁ…セキュリティもとても面白いです。振り返ってみると、ここ2年間くらいは何もしてない感があるが、競技プログラミングから引退みたいには思ってないし、引退表明するほどの実力もない。気が向いたらやるくらいだろうけど、どういう付き合い方になってくんだろう。

さいごに

競技プログラミング界隈からもらったことは沢山あり、特に地方いた自分にとってはかなりの刺激になった。世界の広さを垣間見れる瞬間であり、今後もなるべく続けていきたいが…わからないですね。 正直自分は競技プログラミングのレーティングの世界からはドロップアウトした人間で、解説側にシフトしていった面もあります。競技プログラミングは楽しいけれど、レーティングはつらいという方は解説を広く行うことで界隈に貢献しようという生き方もいいのかなという一例でした。

よくよく見返すと勢いで書いてしまって、かなり痛々しい記事になっちゃった…ちょっと早いですが、良いお年を。