otsunekoの日常

ABC194 & Codeforces Round#705 (Div.2) 受験記

AtCoder Beginner Contest 194

ABC194

「いい加減AtCoderを競プロと勘違いしている奴うぜぇ 競プロじゃないし こどふぉの方がよっぽど競プロ」

「競プロじゃなかったらなんなのよ」

「数学…かな?俺はこどふぉの問題には絶望なんて感情は抱かないけどABC194のC問題に殺された」

A - I Scream

大天使チタンダエル

B - Job Assignment

N=103N=10^3なら二重ループでいけるなーって判断で素直に実装しました。 O(N)の解法あるんですね。復習しないと。

C - Squared Error

ちゃんと式変形を試したらよかった…手を動かさずに頭だけでうんうん唸ってても埒があかんですね。あと、Ai200|A_i|\leq200っていう制約に一瞬違和感を覚えたんですが、特にその後気にすることなく泥沼にハマっていったので、制約条件をうまく活用できないかもちゃんと検討しないとですね…

今回のC問題みたいに問題文短いケースって、一手目が思いつけないと本当にきついです。難関大の数学の問題みたい。tan1°は有理数か?みたいな。

Codeforces Round#705 (Div.2)

CF705

ABC194のダメージを引きずったまま、流れで受けました。結果的に入緑できて競プロ人生初の色がついて嬉しい一方、悶々とした思いが…

というのも、かなり頭が疲れてたので、回答提出せず不参加にするか踏ん切りがつかないまま結構時間を使ってしまったんですよね。まずA問題の時点で英文の意味が良く理解できず、「どういう操作なんだー」と思いながらもとりあえずサンプルケースが通るコードが書きあがったのでえいやと提出した結果、プレテスト通らず…

この時点で参加が確定しちゃったので、0完はまずいなと思いなんとかもがき始めました。とは言えやっぱりA問題は解釈に自信がないのでB問題へ。問題文は長いが言いたいこと、やるべきことは分かる。ひとまずダーッと実装して、なんとかサンプルケースを通せるように。提出。WA…

ここから鬼のWA祭りが始まりました。最初の罠は、鏡に映ったデジタル時計の時刻表記がHH:MMではなくMM:HHになるというもの(厳密にはH1H2:M1M2がM2M1:H2H1になる)で、気づくまで結構時間かかりました。そして最後まで僕を苦しめてくれたのが、デジタル時計の2は鏡に映ると5になる(逆もまた然り)という罠でした。ようやくそれに気づいてプレテスト通したときには残り15分とかでした。

うーん今回は1完か…と思いながらA問題に戻って冷静に問題を眺めてみると、「これmath.ceil(k/2)からnまでのkを除く数字列挙したらいいのでは?」と気付き、急いで実装して残り数分で通せました。

総括

今回ABC194とCF705を2連続で受けましたが、きついなというのが正直な感想です。こどふぉの開始時間が遅いのもありますが、単純に集中力が持たなかったです。

もう一点、自分は明らかにこどふぉの方が向いているだろうし解いてて楽しいな、と思いました。英文の意味分からないときは多々ありますが

正直AtCoderは本当に数学の試験を受けてるような気持ちになる時があって、これって実装力以前に数学的知識が問われてるよな…と思うことしばしばです。

とは言え競プロ初めてまだ日も浅いので、AtCoderの問題も解けるようになってくればどんどん楽しくなっていくのだと思います。今後はコンディション調整も考えて受けるコンテストを少し吟味しつつ、長く続けられる趣味として競プロを楽しみたいと思います。

以上です。