後輩であるS氏(B4),I氏(B2)と共に,チームhinakochanとして参加しました.8問中最初の3問を解いて,競技終了時に73位でした.
ICPCとは大学対抗のチーム制プログラミングコンテストです.くわしくはこちら.
とにかく3問を早く解き,その上で4問目を掴みたいという心持ちでした.チームの中で一番競プロのコードを書き慣れている私がさっさとABを解き,その間に後輩たちに先の問題を見てもらうというフォーメーションでした.
リハーサル時にプリンタに嫌われたりと様々な問題に直面しましたが,なんとか本番までに解消して,競技中は不便なく進めることができました.
- とけた
- A
- 差の数列の部分を取って与えられた範囲の最大値を出す
- B
- 始点を[0, N)範囲で動かして貪欲に文字数57577を満たせるように取れた位置を出力
- C
- スタックに突っ込んで高さに注意しながら逆ポーランド記法っぽく処理
- A
- とけてない
- D
- 1000円出して500円が無条件で手に入るやつとそうでないやつに分類して云々と後輩たちが議論していた
- そんなにめんどくさいならDPでできるんだろうなと思いつつ手が出なかった
- E
- 後輩から無言でスッと差し出された
- 強連結成分分解っぽいと思ったが見えなかった
- F
- 後輩から差し出されなかったシリーズその1
- ただの最小全域木では済まないとわかっただけ
- 終了後にマトロイドというものを初めて知ることになる
- G
- 後輩から差し出されなかったシリーズその2
- 幾何であることを確認して山にスッと戻した
- H
- I氏から簡単ですと言われたが本当かよと思いながら読んだら確かにそんな気はした
- 1Mx1Mの空間はさすがに座標圧縮しないとまずい,各階層はDijkstraでいけるか,時間が足りないなこれ
- D
CはS氏が擬似コードを書いてくれたのでほとんど実装するだけでしたが,その実装の中でそこそこ詰まってしまい,かなりの時間を使ってしまいました.
私がCをバグらせている間,S氏の顔色がみるみる悪くなっていくのを見て私も胃に穴が空きそうでした.正解を確認した瞬間は競技中で一番熱かった.
さて3問解いたというところで順位を見ると,70位,これではとてもだめ,あと1問.
D問題に殴られて死んだという感覚でいますし,チームメンバーもおそらくそうでしょう.無限に時間が消えていきました.一応全ての問題に目を通したのですが,名前だけ知っていて実装したことがない手法が必要になるなど,行けそうだという気持ちになれる問題が他になかったのです.競技プログラミングで書いてきたコード量の少なさは,我々全員が共通するマイナス要素でした.練習不足というほかにありません.
こうして非早生まれのM1であるberlysiaの最初で最後のICPCは終わりました.
チームメンバーであるS氏とI氏にはとても感謝しています.昨年度の頭,学部時代に所属していたサークルのプログラミング班が休眠していたのを換骨奪胎して,データ構造やアルゴリズムを学ぶ集団を興しました.彼らは最初からずっと付いてきてくれているなかのふたりです.
昨年度の活動を見ていて,ICPCに出場できるのは何代か後になるだろう,そこまでこの集団が続けばだが,私も出たかったが仕方ないな,などと思っていました.ですが年齢制限等の条件を知って,ラストチャンスなら出ないともったいないと,彼らは私に出場を勧めてくれたのです.メンバーがいないなら名前と競技中の身柄を貸す,とも.
OB/OGの会のwikiやTwitterではメンバー募集を出していましたが,もうあの時には,私はこの後輩たちと出ようと心に決めていました.chokudai氏をはじめ拡散のご協力をいただき本当にありがとうございました.結局手が挙がることはありませんでしたが,誰かが出てきたらどうするつもりだったんでしょうね.
中高生のころに全力で読み飛ばしてしまった青春の一ページを,いまやっとめくったような心地でした.サークルの各位,特にS氏とI氏,本当にありがとう.エントリーすることを決めてからの1ヶ月強,あるいはサークルを興した日から今日まで,本当に幸せな日々だったと思います.
最後に,コーチを勤めていただいたM先生,監督を引き受けていただいたS先生,快くご協力いただきありがとうございました.