2021/1/10に開催されたAtCoder Beginner Contest 188に参加しました。
前日に行われたARC111は0完という残念な結果で、緑転落ギリギリのレーティングまで落とされてしまいました。今回は、このマイナスを少しでも取り戻そうという気持ちで臨むこととしました。
AtCoder Beginner Contest 188 - AtCoder https://t.co/d3qLakcRGL
— devgenjin77 (@devgenjin77) 2021年1月10日
参加します。昨日のARC111で0完を喰らった分をすこしでも取り戻すべく頑張ります。
今回の結果
そして肝心の結果は、4完終了という微妙な結果となりました。
終わった瞬間、正直茶色転落もあるかと思ってましたが、ことのほかパフォーマンスは上々で、なんとか前回下げた分の半分程度のレートを戻すことに成功しました。
devgenjin77さんのAtCoder Beginner Contest 188での成績:2243位
— devgenjin77 (@devgenjin77) 2021年1月10日
パフォーマンス:1046相当
レーティング:801→829 (+28) :)#AtCoder #ABC188 https://t.co/KhzoGX3DXF
4完で緑パフォは微妙かと思ってましたが、なんとか助かりました。次回も緑から転落しないよう頑張ります。
振り返り
Cで少しまごついて、だいぶタイムロスしてしまいました。
A問題
の場合"No"、それ以外は"Yes"を出力。問題なくAC。
B問題
問題文のとおり計算するだけ。
B問題でも、これではあまりにも簡単だと思い、実は罠があるのかと念のためlongで計算するなどしたが、その必要もなかったみたい。
問題なくAC。
C問題
トーナメントの左の山の中でレートが一番高い人と右の山の中でレートが一番高い人を探しだし、その2人のうちレートの低い方を割り出せばよい。
というわけで、入力配列を真ん中で分割して、それぞれ左の山、右の山で最高値を探せばOK、ということで実装してみましたが、投げてみるとなんとこれが大量のWAを吐き出してしまう。。
ソースのどこをみても原因が良くわからず。もう苦し紛れに配列サイズをとしているところを、実際の配列のサイズを取りに行ったら、これがなんとAC。
そんなこんなの謎の現象でCを突破することができましたとさ。
D問題
Cで大分ロスをしてしまったが、なんとか気を取り直して臨んだD問題。
問題文を見ると、なんだか、いもす法で解けそうな感じだが制約がそれなりにでかいので、すべてを配列で処理するとおそらくTLEかなんかが起きそうな感じがする。
ということで、いもす法と座標圧縮の考え方を組み合わせて考えてみることに。
日目に、サービス料金の合計が円増加し、日目に円減少すると考え、あとは、現在の個々のサービスの料金の合計と、プライム料金の低い方に、次の料金の増減が発生するまでの日数を掛けた値を積み上げていけばOK。
なんとかバグもなく実装できて、あっさりACがとれました。
E問題
残りEとFの問題のうち、順位表を見ると明らかにEの方が解いてる人が多かったので、とりあえず残りの30分ちょいの時間をEにつぎ込んで5完を目指すことに。
で、問題を見ると、DPを使うのか、DFSを使えばなんとかいけそうな感じがするのだが、これといった具体的な実装方法がなかなか思いつかない。。
結局、悩んでいるうちに時間だけが過ぎてしまい、結果時間切れとなりました。
F問題
Eと心中したので、問題すら見れてません。
これまでの実績
とりあえず、茶色転落は免れましたが、今後も油断できない状況です。
総括
いつものABCでは、60分の4完だと緑パフォも怪しいのですが、今回はD問題の難易度がちょうど良かったので、結果的にレートを上げることができました。
ですが、この調子で4完終わりの結果を出し続けてると、いつかは頭打ちになるのも目に見えているので、なんとか安定して5完以上が狙えるような実力をつけたいです。
というわけで、また、次回も頑張ります。