ABC170に参加しました。
前回のABCは4完だったので、今回も前回と同じ4完が目標。
前日の東京海上日動プログラミングコンテストでレーティング398まで上昇したので、今回の結果で灰色卒業は間違いないだろうなーと思っておりました。
参加します。灰色卒業まで後少し。
— devgenjin77 (@devgenjin77) 2020年6月14日
今回は4完以上が目標!
AtCoder Beginner Contest 170 - AtCoder https://t.co/DepSbrfzbn
今回の結果
で、終わってみれば目標未達の3完終了です。
しかも、C問題で相当WAをやらかしてしまい、今回は400未満のパフォーマンス。
灰色卒業は、おあずけとなりました。
3完で灰色卒業ならず。。無念。
— devgenjin77 (@devgenjin77) 2020年6月14日
devgenjin77さんのAtCoder Beginner Contest 170での成績:6839位
パフォーマンス:357相当
レーティング:398→380 (-18) :(#AtCoder #ABC170 https://t.co/Kmhy2XMNuM
振り返り
A問題
入力が5個あって、何個目に0があるかという問題。とくに詰まるところなくAC。
B問題
入力はX、Yの整数。鶴と亀が合わせてX匹、足は総数Y本となる鶴と亀の数の組み合わせが存在するかという問題。
ちょいと上手い解法がわからんかったので、愚直にIF文の分岐をたくさん使い、なんとかACまでこぎつけました。
C問題
整数Xと数列が与えられ、Xと絶対値が近い整数の内数列に存在しないものを探すという問題。
数値の上限値も小さいので、int[102]程度の配列を作って数列内の数字を添字にする要領で実装すればいいんじゃね?ってことで提出まで漕ぎ着けてみれば、これがWAの繰り返し。
そもそも絶対値が同じ解が複数ある場合に低い値を出すという条件を見落としてたり、解答が0になるケースの実装が怪しそうだったりとかで、もう色々直しながら提出してたら、結局5回もWAを喰らった後、やっとACが出せました。(なんか当てもんみたいになってしまったw)
D問題
整数の数列が与えられ、数列内の他のどの数字でも割り切れない数はいくつかを答える問題。
多分愚直にやるとTLE喰らいそうだから、ソートしてから評価すればもうちょい効率よくなるのでは?という感じでサンプルケースが通るコードを作ってみましたが、提出してみれば、結局TLE。。
コンテスト中は改善策が思いつかず、この問題はここで諦めました。
あとで解説をみてみれば、エラトステネスの篩の要領でやれば計算量が抑えられたとのこと。全く思いつかなかったなーと反省しました。
E問題
問題文読むと、普通に考えて実装めっちゃ重そうで、愚直にやるとTLE食らいそうな感じ。時間も残り少ないのでパス。
F問題
問題文をみただけで、BFSを使うやつやなー。ということで、BFSらしき実装をしてみましたが、すでに残り時間がほとんど無く、テストもできぬまま終了となりましたー。
今回の実績
Rated5回目にして、初のレート下げを経験してしまいました。
C問題でWAを繰り返したのがほんとに痛かった。
総括
今回はWAのペナルティーを多く喰らいすぎて、残念な結果になってしまいました。
2完、3完レベルだと、簡単な問題をどんだけ早く正確に解けるかという競争になりがちですね。次回からは提出前にできるだけテストしてから出すようにして、WAを喰らう回数を抑えるように心がけます。