12月16日から3日間開催されたACM-ICPC 2017 Asia Tsukuba Regionalに参加してきました。
チーム「Up to you」として出場しました。 リーダーのryoissyが私とtakatenを誘ったことによってできたチームです。 最終結果はA, B, I, E, Gの5完で22位でした。
ここ数日ずっと研究のための作業をしていました。深夜になって大会のルールを確認していると、
Any amount of paper media can be brought to the contest (for example: books, printed reference documents, handwritten notes). In addition, stuffed toys can also be taken to the contest venue.
という項目に目が留まり、鞄にぬいぐるみを入れました。 持ち込み資料の印刷なども終えて就寝したのは4:00頃です。
午前から始まるJAXA見学は参加が任意だったので、睡眠を取るかJAXAを取るか迷いました。
貸し切りバスでJAXAつくば宇宙センターを見学した後、会場のつくばカピオに入りプラクティスコンテストに参加しました。 本番で使用する環境で練習ができる貴重な時間です。 ソフトウェア環境は事前に仮想マシンのイメージで配布されていましたが、実際に解くことを試してみると不便なところが見つかったため、作戦の調整をしました。
夕方からは、筑波学院大学カフェテリアで夕飯を食べながらチーム紹介。
夜は隣駅(研究学園)前のビジネスホテルで1泊し、ARC087を解きました。
朝食にオムレツをたくさん食べました。
5時間(9:30 - 14:30)で11問を解くコンテストです。
開始したらまずtakatenが画面の前に座り、環境構築を行いました。 その間、私はA問題を、ryoissyはB問題を読むという方針です。 takatenがUSキーボード慣れしていたおかげで短時間で環境が整いました。
0:42 (0WA)
制約が小さいので適当なCombinationを足し合わせて解きました。 いわゆる「やるだけ」問題でしたが、一度添え字を書き誤ったためにACまで時間が掛かりました。
1:13 (1WA)
ryoissyがAC。
3:19 (0WA)
他の問題を読んでいたらryoissyによっていつのまにか解かれていました。 解法をよく理解できていません。
4:08 (5WA)
ryoissy曰く過去に似た問題があったそうですが知りませんでした。 このとき私はG問題を読んで解法を思いついていたので、E問題のデバッグと交代しながらコーディングしていました。
4:11 (0WA)
ryoissyがE問題を通した直後に、私もG問題を通すことができました。 この3分間はチームが一番盛り上がった時間だったと思います。
実装するだけの問題だったことと、ryoissyの嫌いそうな幾何問題だったことから、私が自ら解くと言って書き始めました。 しかし、WAが出たらデバッグが闇になることが目に見えていたので、危ない賭けだったと思います。
D, H, K問題あたりは一読しましたが解くには至りませんでした。 このコンテストではD問題以降が難易度と関係なく並べられていますが、A, B, C問題は簡単な順に並んでいたので、C問題は解けなければならない難易度の問題です。 しかし、実験不足と難しく考えすぎたことが原因で落とすという結果になりました。
C問題さえ取れていれば6完で11位になれていたと思うと非常に悔しいです。
ご飯はどれもおいしかったですが、相変わらずお寿司がありません……。 会場にはスポンサー企業のブースが設置され、就職活動イベントのような雰囲気(経験者談)でチラシやグッズの配布が行われました。
東京に戻り、企業見学に参加しました。朝にはつくばエクスプレスが遅延し、つくばに宿泊していた人たちは大変だったようです。
LINEのキラキラしたオフィスを見学しました。 社内カフェでの支払いがLINE Payという話はさすがLINE。 福利厚生施設を一通り見てまわった後、社員の方のトークを聞きました。LINEの技術に関する隠れた話が聞けて面白かったです。
昼には叙々苑の焼肉弁当をいただきました。
PFNのオフィスがかなり古い建物に入っていたことに驚きました。 実験に使用する産業用ロボットを設置しようとすると、東京では建物がなかなか見つからなかったそうです。見学の合間に問題が出されました。
入力された無向グラフ(N <= 100)について、2人でゲームを行ったときの勝者を出力する。ゲームでは、2人が交互にグラフの1辺を取り除く。辺を取り除いたときにグラフを二部グラフにした人が負け。
自分にはA問題を解けるかも不安だったので、2問もACできてとても嬉しかったです。 しかし、何度振り返ってもC問題を解けなかったことが悔やまれます。 チームの代表を支えられなかったことは大きな反省点です。
ICPCを経たことで競技プログラミングへの意欲が高まりましたが、しばらくは研究に専念しなければならなそう……。