気がついたら終わってた
はじめに
- AtCoderの概要を知った後の最初の週末のコンテストに突撃してみた。
- 当然のように玉砕したね。
- 何の参考にもならないかも知れないけど、まだ始めてない人は雰囲気を掴めるかも。
事前勉強
-
Beginner Selectionの問題の上から順に鏡餅まで終わらせた。この程度だと、ロジックは少し考えれば思いついたけど、細かい文法を覚えてないから、それを確認するのに時間がかかった。同じ問題を複数回提出してるのは、間違えたのとか、速度向上を狙ってやり直したのがあるから。間違えたのも含めて、全て履歴が残るのはいいね👍️
参加申込み
-
前回は新規登録と、非レーティングのコンテストに参加したけど、レーティング付きのコンテストの場合は、「参加登録」ボタンを押した後、「Rated参加登録」か「Unrated参加登録」を選ぶことになる。ただし、運営側としては、基本的にRatedを選ぶように推奨している。(下図は、今月末に予定されているABC360の例。実際に突撃したのは、ABC356。)
コンテスト直前
- 開始2秒前のブラウザ。SideKickというブラウザが標準で画面分割できると聞いたので、左に問題を見ながら右でコードを打てるように導入してみた。コードの試し打ちは、paiza.ioを使うことにした。本当は、playgroundsを使おうとしたんだけど、なんとplaygroundsは標準入力の画面がない。酷いよね。
- 問題は、A〜Gの7問あるけど、Aが一番簡単で、⇒B⇒C⇒・・・と難化していく。
コンテスト結果
- 自分の場合は、問題Aに20分、問題Bに30分、問題Cを飛ばして、問題Dに取りかかったところ、ロジックはそれ程難しい話ではないと思ったものの、実際に走らせてみるとpaiza.ioでもatcoderのコードテストでもtimeoverしてしまい、timeover回避方法も思い浮かばず、結局時間切れ。よって、250点しかとれず、下位2割に入ってしまった。
- 問題Cについては、当日は問題文が頭に入ってこなかったので、簡単そうな問題Dに先に取りかかったけど、翌日に改めて問題文を読んだら、ちゃんと理解できた。
- そもそも、問題文だけだと分かりづらいので、例示(入力例・出力例)を読むことが重要だと理解した。
- で、内容を理解して問題Cのコードを書いたけど、提出結果は「TLE:実行時間制限超過」となった。これは、本番だったら部分点が付いたのだろうか?半分以上は時間内に終了してるけど。
- うーむ、問題Cも問題Dもロジックは思いついたのに、時間効率の良い解法になってないのか...
- 問題E以降は、読んですらいないし、読む気も湧かない。とりあえず、問題C、Dの解答の何が悪かったのかの分析をしないとね。
レーティング
- ランキング最高位の人のレーティングが3800点くらいのところ....9点!
- 凄いね、最高位の人の0.2%のレーティングしかないとか。
- でも、最も人数が多いのは2点の人達なんだよね。参加したけど1問も解かないで止めた、とかなら0点じゃないのかな?変な気もするけど、イロレーティングと似たような考え方なら、0点じゃなくても変じゃないか。
終わりに
- 100分はあっという間に感じたけど、終わった後、どっと汗が出てきたから、体力的には辛かったのかな?
- 次は、問題C,Dの効率的な解法を理解してから臨もうと思う。もし、A-Dを全て正解すれば、950点になるけど、これは、参加者11500人中の1350位(上位12%)〜3500位(上位30%)に相当する。
- とりあえず、問題Dまでの完答を目指すね。
- (追記)最終順位が、11583だから、参加者もそのくらいかと思ったけど、最終順位って、1問も解いてない人たちだから、同順の人が結構いる。だから、参加人数はもう少し居るみたい。