AtCoder で青色(2級)になった、ときのコンテストの参加記

雑な参加記を雑に書く。これは青色になった瞬間の記事で、青色になるまでの記事はまた別に書くかもしれない。なにかの役に立つことはあまり想定していませんが、青色になったばかりの人間の一例の雰囲気をつかむためにでもお役立てください。ABC167です。提出

参加前

レートは1569で、参加回数は41回、ac-predictor によればパフォーマンス1839相当で青色を達成できるらしい。直近3回のパフォーマンスは1711、1789、1750だったので、いけるかな、という感じはあった。

ところで最近NimからRustに乗り換え、というか復帰しつつあったため、ライブラリが整っていない状態での参加だった。UnionFindぐらいあったほうがいいかな、と思って本番直前に書いた、使わなかったけど。

参加

A問題を開く、ほうほうわかった、と言いながら、なぜかDから解いてみたくなったため、Dを開く。どう見てもへんてこ辞書だなあ、と思いながら書いた。Dまで一気に提出するのにハマっていたため、提出を保留する。

C問題、proconioに感謝しながら入力を楽に突破し、全探索を書く。BとAもふつうに解いて、ABCDを提出しながらE問題を読む。

DのACを確認して3分ぐらいだろうか、Eが解けたので、書こうとする。あっしまった、Rustのmodintとか階乗前計算とかがない、と気づく。どっかにあった気がするな~と思いながら探すと、modintだけあった。そうだったなぁ、と思ってNimに切り替える。Nimのライブラリはそこそこ整っているため、すぐ書けた。

EのACを確認して、F問題を見る。この時点で34分経過していた。Eまで解かれやすそうな問題並んでたし微妙かな~とか思っていたのに、ac-predictorを確認してみるとその時点で暫定パフォーマンスが2000を超えていてびっくりした。難易度判定は難しいということですね。

Fは誤った解法をNimで実装してWAで終わりました。

参加後

TLでFの解法を探す、特別な知識が必要とされるタイプの問題ではなかったため、これは解いておきたかったなぁ、と思う。あっそうだそうだ、レートはどうなるのかな、とac-predictorを覗くと、1600を僅かに超えていた、やったね。レート更新が確定したので、ツイートした、リプライとかいいねとかリツイートとかがたくさん来た。にっこり。

翌日

復習~、深夜にFの解法に納得した(というより自身の解法の誤りに納得した)のでRustで実装してACした。Rustのmodintとか階乗前計算とかをライブラリ化してEをRustで実装してACした。

おわりに

青色になるというところまで来ても、言語が安定していなかったり、本番直前にUnionFind書いたり、本番中にライブラリを慌てて探したり、気まぐれで解く順番変えたりしてる人もいるんだよ、みたいな記事でした。だから何?と言われると、うーん。