ICPC 2020 Asia Yokohama Regional Contest 参加記

コンテストで非常に冷えて、書き手も読み手も得しない記事しか書けなさそうだったので書くか迷ったんですが、ICPC引退という節目なので書くことにします 後ろ向きな内容の記事が苦手な人はブラウザバック推奨

メンバーはいつものQWE_QWE

 

コンテスト前々日~

 

 

 

朝9時からの殺人的スケジュールコンテストに対抗するべく、朝バチャで慣らす

受付の時間になったので受付のZoomミーティングに入る

チームでDiscordで通話し、雑談をしていると

Rubikun「こるとんさん、Zoomのマイク切った方が良くないですか?」

 

え?

 

あっ...

 

 

すみませんでした...

 

 

 

クソガキばかりなので「あたまさん」でTLが大いに沸く

f:id:kort0n:20210318150440p:plain

あたまさんでゲラゲラ笑っていると、弊チームも呼ばれる

「くえくえさん」

TLでクソバカにされてキレた

 

Practiceで時間を持て余していると、宅配便が来る

折角なのでネタツイをする

 

 

そこそこふぁぼが付くのをニヤニヤしながら眺めていると

 

 

 

 

すみませんでした...

 

午後8時頃に眠気が来る これで翌日5時や6時に起きて、CF Div.2 あたりのバチャをすればアップも済んで完璧 おやすみ!

 

目が覚める うーん、窓の外が暗いな?

時計を見ると午後11時だった

完全にやらかしたことに気付く

 

 

その後寝ようとして布団でゴロゴロしていると、3時頃にようやく寝付けた 8時頃にアラームで起きるも目覚めが最悪 非常にまずい...

 

 

コンテスト

 

初動は

Rubikun:A

kort0n:B

risujiroh:後ろ

 

コンテスト開始してBを読むと分かったので実装するとFAで通る(0:07)

 

risujirohに聞くと、「K得意なんじゃない?」と言われたので考えることにする この辺でAも通る(0:14)

 

暫くKを考えたところで、問題内容の伝達ミスに気付く 仕方が無いので一旦放置することにする Jをrisujirohがやっており、Gが通り始めていたのでGをやることにする RubikunはIを始める 暫くしてこの3問が通る (J(0:52), G(0:53), I(1:06))

 

一旦残っている中でACが出ている問題をチーム内で概要共有することにする risujirohがE, kort0nがK, RubikunがCに着手することになる 暫くしてEが通る(1:24)

Kのまともな解法は分からないが、未証明エスパーを実装するとサンプルが合ったので投げてみることにすると、 TIME LIMIT が返ってくる 自明に  O\left(N^3\right) 解法だった 完全に頭が死んでいる...

 

結局正しいのかよく分からないので、手元で小さいケースについてストレステストを回すと落ちない 多分答えは正しくて、これを高速化すれば良いんだなという話になる これが完全に地獄の始まり...  恐らくこのエスパー解法は単に落ちづらいだけの嘘解法で、周りを巻き込んでこれに拘泥したせいで、チームとしてKの進捗が長時間ストップしてしまった

 

Rubikunに「Cは右手法とかやればかなり短い行数で出来るはずで、5行以下くらいの答えは全探索出来る 右手法は何手で出来そうか?」と聞かれる 暫く考えると6行の右手法を作れたので、任せることにする

 

暫くしてRubikunが実装を終えたらしく、サンプルを試していた途中(多分?)で突然叫び始める

「やば!!!これFORWARDのスペル違うじゃん!!!」

 

f:id:kort0n:20210318153204p:plain

気付いてくれてありがとう...

Cがちゃんとノーペナで通る (1:50)
(後で知ったけどこれ右手法5行で書けたみたいですね 結局短い答えから全探索するだけで通る問題だったのか...)

 

Hがそこそこ通っているのでrisujirohと色々喋ると解法が生えたらしく、任せる 暫くすると通る(2:36)

 

残りがD, F, Kの3問になる Dは明らかにヤバイので放置するとして、Fも一応内容を把握する 暫くすると、

 

1.全点対間距離を  O\left(N^2\right) time で計算する

2.全点対間距離を  O\left(N^3\right) time で計算する

3.各クエリの答えを  O\left(1\right) time で計算する

 

という解法が生える  N \leq 2000 だが、 ボトルネックの2. の部分はシンプルな処理をするループを回すだけで、手元で最大ケースを実行すると 4sec で終わることが分かる

TIME LIMITの心配は不要だと確信して、実装して提出する ジャッジは遅いが着実に進んでいるようなので、安心して「Kどうしようかな~」等と考えていると

 

F WRONG-ANSWER

 

ストレステストを掛けるが、バグが発生するケースがある程度大きいテストケースしか出てこない Rubikunとデバッグをしようとするが、完全に不可能

 

risujirohはKを進めていたがそちらも通らず、そのままコンテストが終わる

 

コンテスト後

コンテスト中は順位表全体を見渡す余裕は無かったので、Yes/No タイムになって初めてeat-iceの奇行を知ってウケる

 

凍結後1問も通していないので、当然だが次々と抜かされる 最終順位は8位と酷い順位に...

 

f:id:kort0n:20210318165337p:plain

コンテスト後はGatherTownで懇親会をする

初めは広い部屋でどうすれば良いか戸惑っていたが、やがてピクトセンスグループを発見して、乱入する

 

クソガキの群れなので小学生レベルの下品な落書きで大いに盛り上がっていると、突如keymoonが

「てかこれ通話はGatherTownでしてるから会話周りに丸聞こえじゃん」

と言い始める GatherTownの画面を見る 当然周囲に丸聞こえだった 何ならGoogleブースの隣で小学生レベルの会話をしていた

 

 最終的に落書きが何故かkyuridenamidaさんのアイコンに採用される

f:id:kort0n:20210318165743p:plain

 

その後GatherTownが閉じられるまで適当に雑談し、撤退 ボードゲームの二次会を経て就寝しました

後書き

今年はチーム練を頻繁に行っていて、互いの得意分野の把握や立ち回りの最適化もかなり行えており、順当に行けば3位以内はまず間違いないし、2位も普通に取れるチームだと思っていたので、今回の結果は正直非常に悔いの残る結果でした

前日に十分寝られなかったことや問題の伝達ミスが発生したことは不運と言えば不運ですが、強い競技者はちゃんと生活リズムをコンテストに合わせる能力も高いし、そもそもそういう要素を抜きにしても本番中に思考停止で嘘解法を信じようとしたり、最後に難易度予測を見誤って問題の担当ジャンルをいつもと変えてゴリ押そうとした結果ハマッたりした時点で、到底勝てる状態ではなかったなと思います

最後のコンテストはオンライン開催であったという点においても、コンテストの内容としても不完全燃焼という感じではありますが、それでも自分が競プロ沼に深くハマるきっかけになったコンテンツであることは間違い無いし、良いチームメイトに恵まれて楽しくチーム練が出来たことも良かったと思います

幸いチームは解散しないようなので、今後も何かチームコンテストで勝負する機会があったら他所のチームの方は是非宜しくお願いします

来年以降出場される皆さんは是非頑張ってください