Hatena::Grouptopcoder

CKomakiの日記

2016-12-10競技プログラマーのサイコロは千回続けて六が出る

あるレッドコーダーの歩んだ道のり

競技プログラミングadvent calendar 2016




B氏の誘惑 [2010年: 大学二回生春]


『一緒に実践的プログラミングっていう授業とろうよ』

当時大学二回生であり、人並みに進振りの単位が足りなかった自分をB氏が誘ってきたのが始まりだった。

B氏は、自分と同じく東京大学スポーツ愛好会卓球パートに所属する知人であった。

相当の奇人であり、彼が卓球をしているところは見たことがなかった。


実践的プログラミングという授業は端的に言えば競技プログラミングの問題を解く授業。

当時の自分はアルゴリズムが何かすらよくわかっていなかったのだが、

月曜6限という夜に開講される希少授業であったことと、

少しでも学校に行く日を減らしたいという打算から受講することにした。

これが自分と競技プログラミングとの初めての出会いである。


B氏は受講しなかった。




練習をしない [2010年: 大学二回生春]


当時の実践的プログラミングにはhos氏やrng氏を筆頭に日本のトッププレイヤー達が揃っていた。

過去にKMCoderで腕を磨いたと言われる達人達も遊びに来ていたのかもしれない。

しかし、当時の自分に誰かに話しかけようという気などはなく、その存在に気づきもせず講義は終わった。


SRMの存在を知った自分はそれから毎回欠かさず出場するようになっていた。暇だったのである。

バイトもせず授業も出ない一人暮らしの大学生が家ですることといえばタワーディフェンスしかないのだが、

大学二回生ともなれば流石に飽きてくるというもの。なのでSRMはほぼ出場していた。

しかし、プログラミングの能力を向上させようなどという気は一切なく練習もしていなかったため、

結果は芳しいものではなく、Div1とDiv2を彷徨うこととなった。




練習をする [2010年: 大学二回生冬]


『理学部』という響きのよさに惹かれ理学部情報科学科へと進学した自分にやる気などは一切なかった。

C言語を学ぼうという簡単な講義ですら単位を落とす有様。

しかし、怠惰な者にも勤勉な者と同じだけの時間が与えられるもの。

この膨大な暇をSRMの過去問埋めと蟻本周回により潰した結果、三回生の春にはレッドコーダーになっていた。


現在の競技プログラミングの基準で考えれば、この選択は勤勉に見えるかもしれない。

しかし、当時競技プログラミングの大会と言えばまだそんなに数ない時代[要出典]。

Codeforcesもできたばかりで、25割の確率で開始を延長し、英語の問題文は間違いだらけ[出典不要]。

就活のために練習する人間などもいない[要出典]。

要は数学やパズル大好き人間のためのマイナー競技だったのだ[要出典]。


ともあれ、当時の自分は競技プログラミングを練習することは膨大な時間の浪費であると考えていた。




地下 [2011年: 大学三回生春 ~ 大学四回生春]


東京大学理学部七号館の地下一階に学生端末室という単純に超汚い部屋、通称『地下』がある。

情報科学科の生徒は地下に席与えられ、そこで多くの時間を過ごすこととなる。

そして自分もそれからの一年半この部屋で延々競技プログラミングと向き合うこととなった。


これまで独りで練習を重ねていたが、ここでy3eadgzae[要出典]などの新たな仲間達とも出会った。

後にその多くがレッドコーダーとなる彼らは、

非常に優秀でありながらも謙虚に学びの姿勢を貫く、正にお手本とすべき学徒であった。

今の自分があるのも彼らのおかげであると言って過言ではないだろう。

彼らからは多くの煽り方を学んだ。


競プロのことはtwitterから学んだ。

当時twitter上でお世話になった人にhirose_golf氏やogiekako氏などがいる。

彼らのような黙々と問題に取り組み難問を通すストイックなタイプの人々も今となっては懐かしさを覚える。


自分の競技プログラミングの能力が一番高かったのもこの時期だ。

当然と言えば当然であろう。

500日もの間、蟻本周回やCFSRMの練習、マラソンマッチに参加、もしくは秋葉原に散歩くらいしかしていなかったのだから。

余談だが、牛ゲーという単語を誰が作ったのかというツイートなどをたまに見かけるが、

あれは蟻本大好き人間の自分がこの頃に地下で呼び始めたものである。

しかし、名前をつけるほどに重要視し練習を重ねておきながら本番で通せたことは過去に一度もない。




地上 [2012~16年: 大学四回生冬 ~ 現在]


一年半に渡る地下生活を終え、自分を待っていたのは信じられないような幸運であった。

外資系のソフトウェアエンジニアの給料が異常に高いという新事実。

更にエンジニアの面接はホワイトボードコーディングをするだけという圧倒的競技プログラマ優位。

企業も競技プログラマに目を付け始め、大会は増え、裾野は一般のプログラマーにまで広がり、

レッドコーダーはモテはじめ、腹筋が綺麗に割れた知的な彼女ができました。(ふくらはぎの筋肉も良い)


妄想はさておき、何も考えず競技プログラミングをしていただけなのに、

運良く卒業後もそれなりにいい生活を送れているように思われる。

まるで競技プログラミングにおけるエッジケースの如く、

サイコロを振ったら六が千回続けて出たかのように。




あとがき


結果として僕は大学の学部生活の大部分を競技プログラミングに捧げた。

僕が大学二年生で丁度競技プログラミングを始めた時に、四畳半神話大系というアニメが放映されていた。


主人公である『私』は大学三年生。

視聴者である僕達は大学入学時の行動で分岐する”もしも”の世界における数々の『私』を見ることとなる。

大学入学時にテニスサークルに入った場合の『私』。

映画サークルに入った場合の『私』。

秘密組織に入った場合の『私』。

そのどの平行世界においても『私』は満足をしない。

思い描いていた薔薇色のキャンパスライフとは程遠い大学生活に『私』は絶望する、という物語




僕はそのアニメを見てこう思った。




おもしろいから布教すべきだと。




ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


くぅ疲


競プロのadvent calendarで自分語りポエムとか書いてる人がいて、実際問題ポエム読むの結構おもしろいなと思ったから自分で書いみた。

最初は自分のことを極力省いて、自分の視点から見た他人のことや環境の変化だけを書こうかとも思ったけど、

よく知らない人の名前出したら怒られそうだったからやめた。

実際y3eadgbeaとか地下で煽りまくるハラスメンティスト筆頭みたいになっちゃったし。


四畳半神話大系は言及したかったけど、アニメに影響されましたなんて書くのは凄く恥ずかしい。

なのでその部分を省いた結果として布教するだけになってしまった。


真面目な話、最近感じてたことだけど最近のプロコンはポップな感じがするなぁと書いてて再確認した。

自分の心境の変化かもしれないけど。

昔の競プロは自分の知能やプライドをかけて戦う場という感じだったけど、

最近のは皆で一緒に勉強して能力を上げて素晴らしい未来をみたいな感じ。

topcoderの背景が黒くてatcoderの背景が白いのの関係とか、

あとは薄暗い地下の陰気さとか色々な要因もありそうだけど。

実際問題、ほぼ全ての面で今の方がいいのは確実なんだけど懐古厨なので昔を懐かしんでしまう。

俺よりも昔からやってる人からは、蟻本ある時代の人間が何語ってるんだよって言われそうだけど。


ちなみに、文中に出てきたKMCoderっていうのもそういった俺の始めるずっと前の時代のものらしい。

iwiさん, kita_masaさん, omeometoさん, wataさん(基本全部ABC順)などの真にヤバイ人々が練習に使ってた。

あと今ググったらニコニコ大百科に記事があった。http://dic.nicovideo.jp/a/kmcoder


全体の感想は、プロコンに出会えたのとか、自由に使える時間が膨大にあったのとか運良かったことかな。

ただ、変人B氏のおかげで出会えたということには結構なひっかかりを感じてしまうが。