ICPC2020 国内予選参加記

niu_mogu_moguでniuezとplayrollerで組んで参加しました.

コンテスト前

なんかずっと微熱が出てて一週間くらい寝込んでいた。
一週間まるまる欠席してたけど、PCR検査の結果が出るまでの期間は公欠にできるらしい(ホンマか?)
当日は熱も下がってきていたので出るか~~~~~~~~~~~~と言いながら準備をした。
事前練習の(僕が解ける難易度の)問題が全て解かれていて、提出してACをもらうまでの流れを練習できなくて微妙に困った。仕方がないのでhelpを1333回くらい読んだ。

コンテスト

過去問を見る限り、僕には頑張ってもDくらいまでしか通せなさそうだったので、僕とplayrollerでA~Cくらいまでをやっつけようということになった。
コンテストが始まった瞬間、アクセスできなくなって、僕何かやっちゃいました?と思ってかなり焦ったけど、チームメイトに連絡したら同じ状況らしいので少し安心。
いつのまにかコンテストが始まっていたので、僕がA、playrollerがB、niuezがCから後ろを見る。
勝手がよくわからないままやっていたらAを通すのに10分くらいかかってしまった。まあ、ペナを食らうよりはマシなので……。 ちょっと遅れてplayrollerがBを通してくれたので一緒にCを見る。
にうが方針を投げてくれていたので、それを元にして考える。愚直に2回約数列挙だと時間がかかりすぎそうだけどもしかしたらいけるかもということでplayrollerが試しに実装してみるとやっぱりダメそうな感じらしい。
ちょっと考えても冴えた方法が思い浮かばなくて、微妙に困ったのでとりあえず小手先の高速化をしてみることに。
とりあえず、pが素数、2つもしくは3つの素数の積の場合だけ別で処理して、あとはwを約数列挙で全探索、hとdはsqrt(p/w)に一番近い約数の組を選んだ時にw+h+dが最小になるのでそのようにすると、待てるくらいの実行速度になるので待つ。解答を投げてみるとcorrectが返ってきたので、そのまま通す。明らかに犯罪っぽい気がしたけど、ルール上問題ないので問題なし!
Cが解けたのでDを読み始めたけど、よくわからない。わからね~~~~~~と唸っているうちにniuezがEを通す。すげー。
しばらく考えてわからなかったので夕飯を食べる。夕飯を食べてもわからないものはわからない。困った。
どうにもならなかったので、一応他の問題を見てみる。その時点でまだ通してない問題は一通りみたけど、普通によくわからかった。Hなんすかあれ。
他の問題は手を出しても太刀打ちできないことが分かったのでDに戻る。しばらく考えたけど、よくわからなったので、机に突っ伏して、机と椅子を温めていた。
もう残り時間全然ないな~~と思いながら順位表を眺めていたところ、niuezがFでペナを出しまくっていることに気づく。がんばれ~~~と届かない応援をしていると、コンテスト終了間際になってniuezがFを通す。今日のヒーローはお前や!!!!!!!
終結果はABCEF 5完で25位。

まとめ

かなりいい結果を残せたんじゃないかと思う。僕自身もぶっ倒れていたわりにはまともに近い動きができていたので良かった。 チームメイトの二人にはかなり心配をかけてしまっていたはずなので、ここで謝っておきます。ごめん。
あとかなり土壇場で出れそうなので出るわとか言ったのに温かく迎えてくれたので、ここで感謝しておきます。ありがとう。