もふふろぐ

ACM-ICPC 2018 国内予選 参加記

7月6日に開催されたACM-ICPC 2018 国内予選に参加しました。

Shinya Katotomatoと共にチーム「Mohuhu University」として出場しました。全員がAtCoderで青色です。結果はA, B, C, Dの4完で31位でした。

準備

使用を予定していた大学研究室のプリンタが故障しました。すぐには復旧できそうになかったので、隣の部屋のプリンタを借りることにしました。

コンテスト開始を待つ間はShinya Katoを中心に「エビフライゴハン」と「フビライ・ハン」の編集距離について考察していました。

コンテスト

3時間(16:30 - 19:30)で8問を解くコンテストです。各自印刷したコードスニペットや蟻本を持参して臨みました。

初めに私がPCの前に座り、問題の印刷、環境構築、A問題の提出を行いました。常用しているエディタが3人とも異なるため(vim, VSCode, Visual Studio)、あらかじめ初動を入念に確認しておきました。A問題と並行してShinya KatoがB, D問題、tomatoがC問題を考えます。A問題をACした私がE問題以降をすべて読み、2人に伝えるという方針でした。

A 所得格差

0:06:15 (0WA)

平均値以下の値の個数を数える問題。過去のA問題よりも簡単であったと思われます。

B 折り紙

0:30:02 (0WA)

Shinya Katoが実装したくなさそうな様子で読んでいました。実装が重かったそうですが0WAACしてくれました。

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でも出していたら予選を通過できなかったため、ぎりぎりの結果です。

競技プログラミングへのモチベーションがもふもふしてきました。