ACM-ICPC 2018 国内予選 参加記
7月6日に開催されたACM-ICPC 2018 国内予選に参加しました。
Shinya Kato
とtomato
と共にチーム「Mohuhu University」として出場しました。全員がAtCoderで青色です。結果はA, B, C, Dの4完で31位でした。
準備
使用を予定していた大学研究室のプリンタが故障しました。すぐには復旧できそうになかったので、隣の部屋のプリンタを借りることにしました。
コンテスト開始を待つ間はShinya Kato
を中心に「エビフライゴハン」と「フビライ・ハン」の編集距離について考察していました。
— Shinya Kato (@0x19f) July 6, 2018
コンテスト
3時間(16:30 - 19:30)で8問を解くコンテストです。各自印刷したコードスニペットや蟻本を持参して臨みました。
初めに私がPCの前に座り、問題の印刷、環境構築、A問題の提出を行いました。常用しているエディタが3人とも異なるため(vim, VSCode, Visual Studio)、あらかじめ初動を入念に確認しておきました。A問題と並行してShinya Kato
がB, D問題、tomato
がC問題を考えます。A問題をAC
した私がE問題以降をすべて読み、2人に伝えるという方針でした。
DはDP......DはDP......DはDP......
— Shinya Kato (@0x19f) July 6, 2018
A 所得格差
0:06:15 (0WA)
平均値以下の値の個数を数える問題。過去のA問題よりも簡単であったと思われます。
B 折り紙
0:30:02 (0WA)
Shinya Kato
が実装したくなさそうな様子で読んでいました。実装が重かったそうですが0WA
でAC
してくれました。
C 超高層ビル「みなとハルカス」
1:11:26 (0WA)
tomato
がすぐには解法がわからないようだったので、急遽D問題に移ってもらい、私がAC
しました。簡単な算数でありながら多少の発想が必要な点で、AtCoderのような問題だと思いました。コード量も少なめになります。
D 全チームによるプレーオフ
1:33:23 (0WA)
tomato
の考察をShinya Kato
が確認した上でtomato
がコーディングしAC
しました。ここでShinya Kato
の豊富なコードスニペットが役に立ったので、1チームに1人Shinya Kato
がほしいものだと思いました。
E 浮動小数点数
未提出
私が読み終えたE, F, G, H問題をShinya Kato
に伝えたところ、選ばれたのはE問題でした。Shinya Kato
の考えた方針に懸念があったため、小声で指摘しましたが、小声だったので伝わりませんでした。今後はコンテスト中の小声を禁止しようと思います。
与えられた浮動小数点数をN + 1
回(N <= 10^18
)足した際の桁落ちを再現する問題。(浮動小数点数の桁数を定数とみなすと)O(1)で解くことができます。今日のコンテストで一番良い問題だと思いました。
懇親会
同大学から参加した9チームが一堂に会してピザ🍕と寿司🍣を食べました。競技プログラミングの大学サークルが無いにもかかわらず、これだけの人が集まっていたことに驚きました。
まとめ
正式な結果は未公開ですが、アジア大会に進出できる順位に入ることができました。1WA
でも出していたら予選を通過できなかったため、ぎりぎりの結果です。
競技プログラミングへのモチベーションがもふもふしてきました。