ICPC 2019 Asia Danang Regional 参加記

12/6にダナンで開催されたICPCアジア地区大会に参加してきました。

12/2

フライトが次の日の朝早くだったため、関西国際空港に宿泊。 6000円でカプセルホテルの天井が高くなったやつに泊まることができた。

12/3

日本脱出。 チェックインや出国審査に思ったより時間がかかり、早めに出ておいてよかったなあとなった。 だいたい14時間かけて空港についたが、予約していたホテルの送迎が来ない。 仕方なくその辺のタクシーに声をかけたら案の定ボられてしまった。(それでも元々の物価が死ぬほど安いため、10km2000円とか。) なんとかホテルに辿り着く。ホテルの部屋が1泊4500円(1人1500円)なのに死ぬほど広くてビビる。

f:id:mdyh2a380824:20191211225549j:plainf:id:mdyh2a380824:20191211225554j:plain
広すぎ

12/4

余裕をもって一日早く着いていたので観光をする。 ハン市場とダナン大聖堂に行った。買い物難しい。

夜にSleepingDragonとHeno Worldに合流して、運営に着けてもらった現地ガイドの人とご飯を食べに行く。 1食100~300円で金銭感覚がバグる。

12/5

practiceの日。バスでダナン工科大学に向かう。 到着するとまずopening celemonyがあった。壮大なBGMが流れていてちょっと面白かった。 コンテストについての説明などを聞いて、practiceに向かう。

直前になって、現地ガイドの人が「昼ごはんにパンか何か買うかい?」的なことを聞いてくれたらしく、 れなすとゆきのんがガイドの人と一緒にパンを買いに行った。数分で戻ってくると思っていたが間に合わず、結局自分一人で会場へ入ることに(あとから来た)

自分の席につくと、謎の使用済み計算用紙(?)と、ベトナム語で何か書かれている紙(???)が置いてある。 紙にIDとパスワードとリンクが書いてあるので、ここにアクセスしてIDとパスワードを使ってログインすればいいのかなと考える。が、リンクが開かない。 運営サイドの人に聞くと、まだpracticeは始まっていないらしい。なるほど、となってテンプレやエディタ設定の写経を練習する。

そのまましばらく経って、周りがkattisにログインし始め、運営が開始のアナウンスをしてるのが聞こえたのでさっきのリンクにアクセスする。が、リンクが開かない。 周りを眺めると見たことある問題(ドーナツのやつ)を解いていたので、まだ始まってないから過去問でも解いてるのかなあなどと考え、自分たちも適当に問題を解く。(実はこの時もう始まっていたらしい)

そのまましばらく経過し、不安になったので運営に「この紙に書いてあるリンクにつながらないんだけど?」と聞くと 「その紙は違います。」などと言って紙をビリビリに破きはじめ、おっワクワクか?と考えていたらpracticeが終了した(は?)

あとで京大勢に聞いたらkattis使ったことあるなら大丈夫やでと言われたので一安心する。 夜は中華っぽいレストランでご飯を食べた。量が異常に多かった。

次の日は早いがこどふぉがあったのでもちろん出る。 23時半頃に就寝。

12/6

本番の日。5時半起床。 眠い目をこすりながらバスで大学に向かう。 会場に入って自分の席に着くとちゃんとkattisのログインページが表示されていて一安心する。 コンテスト中の流れはネタばれを含むので下に書く。

f:id:mdyh2a380824:20191211225754j:plain
終了後の会場

コンテスト後はパゴダにいった。 大きな大仏などがあってわりと楽しかった。

19時ごろからYES/NOがあった。Heno Worldが10完単独優勝を決めていてアツかった。 宿に帰ってから4人あつまって麻雀をした。

12/7

ホイアンとコン市場を観光。お土産をかった。 飛行機に乗って帰った。

感想

そもそも今年の国内予選が初めてのICPCで、チームを組んだのが国内の直前だったため3完で横浜には遠く及ばなかったが、 自分が今年4回生で残り回数も少ないこと、旅費が思ったより安いことを理由に自腹でアジア地区大会に参加することにした。 黄青水(登録時点では青青水)のチームだったため実力不足を懸念していたが、終わった今となっては参加してよかったと思っている。 結果はチームの実力にしてはよくできた方だと思う。少なくとも国内予選の時よりは確実に成長しているのを感じた。

反省

自分の実装が遅い、チーム全体として速度が足りていない。
たいしたことないコーナーケースにひっかかったりしょーもないバグを埋め込んだりしてWAを生やしたのはとても反省している。精進を続けるしかない。

来年は日本のアジア地区予選に行きたいね。

~~~ネタバレ注意~~~

0:00~ 自分がテンプレとエディタの設定を写経してる間に、ゆきのんにA~F、れなすにG~Mを読んでもらう。

~0:13 写経し終わったので、れなすがめちゃくちゃ簡単だと言っていたMの概要を聞く。 考察が簡単すぎてさすがに自分で読みなおし、納得して書く。WAが出る(は?) すぐにn<=2のケースを忘れていたことに気づき、AC

~0:82 Gの見た目が簡単そうなので、れなすと考えてみる。 れなすが(1000...にするのにかかる回数) +(各桁の和 - 1) + 桁数みたいな式を生やした。正しそうなので実装して投げる。WA。 すぐにコーナーケースがたくさんあることに気づき、後回しにする。 ゆきのんがD解けそうと言っているので、そのまま任せる。 自分はKを考えていたが、さっぱりわからず順位表を見るとDとIが解かれていそうだったのでIを考える。 しばらくしてゆきのんがDをAC

~2:19 Iが解けたので書いてみる。が、WA。(スイッチとライトの対応を間違えていた) 一度置いておいてGに戻る。れなすがいくつかコーナーケースを発見したので実装して投げる、がWA。 この辺から絶望していて、順位表で皆が通していそうなIを先にやることにする。 すぐにミスに気づき、実装してAC

~2:31 れなすがGのコーナーケースをもう一つ見つける(最下位以外に1があるケース)。実装して投げてみるとAC

~3:55 Hを眺めながられなすと話していると、行の制約を満たす塗り方を全列挙して全部の組合せを確かめるのが間に合いそうだという話になる。 自分が実装することにして、その間れなすとゆきのんにAを考えてもらう。 とりあえず全列挙パートを書き終わったあたりでれなすとゆきのんがAの解法を生やしたらしいので、先に書いてもらう。AC。

~4:36 Hの実装が終わったので投げる。RE。(実装方針を一部変更する前のassertを取り忘れていた.....) ゆきのんがLがもしかしたら貪欲で通るかも?と言っていたので、かなり怪しさを感じたが解けそうな問題がないので実装してもらう。 自分はゆきのんがかいてる横でマウスを使ってHのデバッグをしていた。(これが功を奏した。) REやしセグフォやろ~と思っていたら大昔にassertを入れていたことを思い出し、ゆきのんの手が止まったタイミングで取り除いて投げてみる。AC

~5:00 Lを実装するゆきのんを応援する。が貪欲ではダメなので通らない。コンテスト終了。