ICPC Asia Yokohama Regional 2019の感想記

 

 

こんばんは, yapattaです. 

11/16から11/18にかけて, ICPC Asia Yokohama Regional 2019に参加してきましたー!

せっかく参加できたわけですし感想を書きたいと思います. 

 

今年も, 去年と同じチームメイト, Roy_R, spiderとチームchoKOdaiとして参加しました. 

結果はABの2完, 54/65位でした. 最下位にならないという目標は達成しましたが, 3完したかった...(H問題解きたかった...)

アジアの壁の高さに圧倒されました.

 

では, 今回のICPCについて時系列順につらつらと書き出していきたいと思います.

 

 

準備

平日授業が終わった後Roy_Rと, 1時間ほど時間を決めて, ICPC本戦の過去問を解く練習をやっていました. 一人がキャンパスが違かったり, 研究室見学で忙しかったこともあり, 3人で5時間とって本番のように練習する機会が取れませんでした. しかし, JAG夏合宿で5時間ぶっ続けのコンテストを何回か練習でき, 本番の雰囲気を知れたことは大きかったと思います. 

余談なのですが, コンテスト前日に寝坊して, 大学の実験に遅刻して受けることができなくなっちゃいました. 遅刻した理由として, ICPCに緊張しすぎて寝れなかったと言い, ICPCのせいにしてしまったこと, 誠に申し訳ありません...(でも, 本当に緊張したんですよ?)

因みに, あと一回実験を受けられないと落単ですね... 恐ろしい...

 

一日目

コンテストのリハーサルやチーム紹介をしました. 

 

会場に向かう途中, 最寄り駅で大学の友人に会って応援されました. うれしかったと同時に, これからICPCに行くんだなということを強く実感しました. (それまで, 本当に今日大会があるという実感が湧いていなかったらしい)

会場に着いて, Registrationをしました. 話される言語が全部英語だったんですね. アジア大会に来てしまったんだなあ, と感慨深くなりました. 

大学の友人がスタッフアルバイトをしていたり, JAG夏合宿で見たことある人がたくさんいたおかげで, 会場の雰囲気に呑まれずに済みました(非常にありがたかった).

 

主催者が全て英語で話していたから, これ聞いてたら勝手に英語力上昇しねえかなー, とか思いながらOpeningを過ごしました. 

その後, Judgeの説明などがありました. スタッフが試しにJudgeに簡単な問題の答えをsubmitしたらWrong Answerが出て, 会場が大爆笑になりました. コンテストで起こりうる事例を色々試してくれて非常にありがたかったですね. 

 

そして説明が終わった後, コンテストのリハーサルが始まりました. 問題内容をあまり覚えていませんが, C問題で再帰が何故か抜けなくなって解けなかった気がします. 最終的に, A, B問題が解けました. 

本番環境のエディタにもコンパイラにも悩まされることがなく安心しました. 

 

続いてチーム紹介が始まりました. チーム紹介について事前に何も打ち合わせをしていませんでしたが, チーム名がchoKOdaiということもあり, chokudaiさんのハンドスプリングにあやかって, Roy_Rが側方宙返りをすることに決まりました. 僕がとりあえずそれっぽい説明をして, 彼がパフォーマンスをやりました. 結構受けました. Roy_Rありがとう. 一番の関門を突破して安堵感でいっぱいになりました. (因みにまだ本番は終わっていない)

 

まあこんな感じで一日目が終わりました. 

家に帰る途中に近所の公園で配布された弁当を食べました. 秋の公園にいると, とりあえず心が落ち着きます. 

 

帰宅後, ABC145に参加しました. (AtCoder社のコンテスト) D問題を見て, フェルマーの小定理やんけ. 脳死で解けるぜ!とか思ったのですが, 再帰を深くしすぎて,PCがSegment Faultを吐いたんですね. E問題も最後の処理を付け加えたナップザック問題だろうという感じで思いついたものの実装しきれなくて, 結局4完遅解きみたいな感じになっちゃいました. まあ, そんな日もあります. 

コンテストの後, 幾何ライブラリの使い方を確認し, 印刷して翌日に備えました. 

 

二日目

朝の集合時間が非常に早かったため起きれるか心配になりました. (朝に非常に弱いのです...)

しかし, 目覚まし時計 + スマホのアラーム + 友人に朝電話をかけてもらう, という万全の体制で朝起きることに成功しました(電話かけてくれて本当にありがとう...).

 

なんとか会場に着き, 登録を終えることができました. 二日目の開会式が終わったら, すぐにコンテストが始まり焦りました(高田先生も時間を間違えてのんびり話してしまったらしいです).

まず, Roy_RとspiderにA問題を見てもらい, 僕がB問題を見ることになりました. A問題について僕はあまり良くわかっていないため, Roy_Rのブログを参考にして下さい. 

roy-r.hatenablog.com

彼らがA問題を40分ほどで解いてくださりました. 彼らが解いている間に, 僕はB問題の問題文を読んでいました. 高さがわかっている座標からどんどん広げて, 取りうる高さの範囲を求めるのかな?と思いつつ, それで本当に正しい答えが出るか確証が持てないという状態でした. Roy_R曰く, その範囲の最小値を出力していけばいけるらしく, 二人でコードを書き出すことにしました. 各点かDFSでやろう → いやBFSでできる → いやマンハッタン距離を求めるだけだ, という感じになり, それっぽいコードにしてコードを出したら通りました. 後から考えると, ある点の高さの範囲が存在しない以外は, 2点間で高さが2以上となる点が存在することは簡単に証明できるんですね〜. 

この問題結構典型だったらしいですね. 問題演習の量を増やしたいと思います. 

 

B問題を解ききって順位表を見たら, 40位ほどでそこそこいい位置にいました. 時間も残り4時間弱あったので, あと一問解こう!できたら二問解こうと意気込んでいました. 

 

僕らがB問題を解いている間にspiderさんにH問題を見てもらいました(Standingを見ていたら圧倒的にHを通している人が多かった). 

説明を聞いた感じ構文解析みたいな問題でした. 3つのルールがあって, ある文字列が渡されそのルールを満たすものが何個存在するか的な問題だった気がします. 小括弧そのものがルールを満たし, 小括弧が隣り合うこともルールを満たし, 小括弧を小括弧が挟むものもルールを満たすという感じでした. 

これだけだと問題は簡単なのですが, 「-」という文字が来たときは, 今まであった文字列から括弧を消す必要があります. その状態で, ルールを満たす文字列を求めなければなりません. そこで僕らは括弧の状態をスタックに保存し, 「-」が来たときは, スタックの一番上を取り出し, 取り出したものを用いて, 前の状態に復元するという実装にしました. 

それっぽいコードができたのですが, 必要な機能をひたすら継ぎ足すということをやってしまいました. あまりコードを理解せずに口を挟んでしまったような気がします(良くない). 

スタックへの保存と復元ではなく, そもそもの構文解析がうまく行ってないことに気づきバグを取りながら, そしてスタックの実装も修正しつつ, サンプルケースが全て通ることを確認し, 提出しましたが, Wrong Anserを吐いてしまいました. コーナーケースがわからなかったため, 適当に自分たちでテストケースを作りましたが, 全てうまく通るのでおかしいなと思いながら悩みました.

int型じゃ大きさ的に足りないことに気づき, long long型にして提出しましたが通らず, 結局Wrong Answerのままコンテストが終了してしまいました. 

あっという間に5時間が経ってしまいました. 

 

そしてコンテストが終了して, コンテストの問題解説や表彰がなされました. 問題解説の時間は, 疲れて寝てしまいました(A,B,H以外の解説を聞いてもわからなかった).

コンテストのランキング発表もありました. コンテスト終了30分前からランキングが凍結されて見れなくなってたらしいですね(運営がそういう話をしていたらしいのですが話を聞いていなかったため, ランキング発表がされて皆が盛り上がっていることからやっと意味がわかった).

UKUNICHIAすごいなあ..., 海外勢エグいなあ, 将来こういう人たちと戦えるぐらいになりたいなぁ, とか思っては, しみじみとなっていました.

 

表彰が終わり, 懇談会が始まりました. 皆で写真撮影をした後, 企業賞を受賞するチームが発表され, 表彰されていました. このとき, まだ企業のブースには誰も人がいなかったので, さり気なくRoy_Rと共に色んなブースを回って, もらえる景品をもらえるだけもらっていました. 

 

企業賞の表彰が終わり, 皆で乾杯をしてパーティーが始まりました. 食事が豪華だったため, 食べれるだけ食べました. JAGで会った人たちと話しました. てぃーいけさんとも話し, 競技プログラミング辛いねw的な話をしました. 辛くもなりながら, M1まで毎年ICPC参加しきった彼は, どこか優しやと強さに満ちていました. 

 

楽しい時間というものはあっという間に過ぎるもので, 宴も終わりに近づき, 物寂しさを感じてしまいました. 夏休みが最後に近づくにつれ, 感じる儚さといった心情です. 

レートが上がらずに悩み, ICPCを迎えたくないなとあんなに思ってたはずなのに, いざ終わってしまうと, 自分が予想以上に楽しんでいたらしくて不思議な気持ちです. 

 

チームメイトと別れを告げ, アルバイトに来ていた大学の友人と, 一緒にラーメンを食べに行きました. ICPCが終わって欲しくないという思いからか, 横浜の町並みをなんとなくブラブラしました...

 

帰宅した途端, 疲れからか何もしたくなくなり, 布団に潜り込んでそのまま寝てしまいました.

 

夢うつつな状態のまま深い眠りにつきました...

 

三日目

企業見学に行ってきました!!

僕はグループCだったので, NECしながわ水族館Huaweiという順番で回りました. (もちろんしながわ水族館も企業見学の一環ですよ???)

 

他のチームメイトが実験や中間試験などの理由で来れなかったため, 一人で企業見学に参加しました. 心細かったですが, グループCにてぃーいけさんやabc050さんなどの知っている方々がいて安心しました. 

最初にNECに見学に行きました. NECに向かう途中, 前日の疲れがまだ残っていて, そんな中満員電車に揺られました. 毎朝電車に揺られながら出勤するの嫌だなー, 社会人になるの嫌だなーと企業見学前から思ってしまいました...

 

いざNECに行ってみると, NEC本社の大きさにびっくりしました. NECビルの27階(だったかな?)から見る三田の町並みは圧巻でした. 東京タワーのオーラが消えたと思うほど, 東京タワーが大したことなく見えました.

社員の話を聞いてみると, 会社が大きいだけあって色んな分野の部署があり, 行きたい部署に移って, 様々な挑戦をできるということに魅力を感じました. しかし, まだB2ということもあり就活するという実感があまり湧きませんでした. (今年の夏のインターンで, 朝起きて出勤することが辛すぎて, 院進を決意してしまったため, まだ就活を考えることができません) 

NECの最上階で食事を取ったのですが, ものすごく豪勢な食事が出て勝利?を実感しました. 魚介に, お寿司に, ローストビーフに!という感じでした(あれ?お寿司は魚介に含まれる?). 一人暮らしということもあり, 栄養をいっぱい取っとこうと思い, ありがたく頂きました. 

 

次にしながわ水族館に行きました. 

今年はPreferred Network社の企業見学がなくなって, 急遽しながわ水族館見学ということになったそうです. ICPC事務局側も大変だったと思います...

 

まあそうはいいつつ, 実はしながわ水族館ものすごく楽しみだったのです!

 久しぶりに水族館に行ったこともあり, 童心を思い出しではしゃいでしまいました. いるかショーではいるかの大きさに圧倒され, 海に一緒にいたら恐らく勝てないなあと思いました.

 

abc050さんと水族館を散策していたら, 他の人達と離れてしまい, 迷子?になりました. 水族館の中でICPC関係の人達と誰とも会わないことをおかしいなと思って, 電車に乗って品川のHuawei東京研究室に向かいました. 現地に着いてみたら皆がいて, 余裕を持って到着していてさすがだなと思いました(僕らは集合時間ギリギリに着きました). 

 

Huawei東京研究室では, 人形をカメラでぐるーと撮ると, 人形がAR化して動くといったサービスの説明や, Huaweiが通信だけでなくハード(スマホ, AR, VR, イヤフォン, など)の設計・製造も行っていることなどを聞いた気がします. 院卒の初任給が高いこと, 英語や中国語が必要な環境, 通信,ハード,ソフトなど広い分野をカバーしていること, サービス展開までの圧倒的スピード感などが魅力的に映りました. 

 

まあこんな感じで企業見学が終わりました. 五限の授業をサボって企業見学に行ってしまった罪悪感からか, 五限チャレンジをしようと思って電車に乗ろうとしたのですが, 無事電車に乗り遅れて授業に出席できませんでした. 

 

感想とこれからについて

予選に通るかわからないという状態で, なんとかここまで来れてよかったですね(あれ?これRoy_Rの感想と同じ気がする?). 

チームメイトがいなかったらここまで頑張ることができなかったので, 感謝の気持ちでいっぱいです.

できれば競技プログラミングはやめることなくゆるふわでもいいから続けていきたいですね. 

12月にマニラ大会にも行く予定なのでなんとか頑張りたいと思います. 

 

一緒に関わってくださった方々, 応援してくれた方々には感謝の気持ちでいっぱいです!本当にありがとうございました!