AtCoder Beginner Contest 198 参加記

2021/4/11に開催されたAtCoder Beginner Contest 198に参加しました。

atcoder.jp

先週はコンテストが無く、前日の土曜のAGCも不参加だったので、大分間が空いてのコンテスト参加です。最近は仕事も多忙のため、あんまし精進もできてないこともあったので、何とか今回はレートが下がらない程度に頑張ろうという感じでした。

今回の結果

で、今回の結果は、ラスト1分ギリギリでの4完達成となりました!

ABC198結果

ABC198結果

水色パフォーマンスが出て、レートはHighestを更新。そろそろ4桁レートも目前となりました。

振り返り

Cまで大分もたつきましたが、ラストギリギリでE問題のACが取れました。

ABC198提出結果

ABC198提出結果

A問題

A - Div

サンプルの見た目からN - 1を出力すればいいのかなー的な問題。

疑ってもきりが無いので、上記の理解どおりに実装して提出。ACが取れましたとさ。

2分程度でA問題通過。

B問題

B - Palindrome with leading zeros

先頭に'0'を追加して回文になっているかのチェックを、Nの桁数分繰り返せばよい。

ということで、StringBuilderを使って実装すれば簡単かと思いきや、いろいろ想定外の挙動が発生してサンプルすら通すのに結構苦労してしまう。

結局、愚直にStringの頭に'0'を追加することを繰り返すことで解決しました。

B完了まで、結構遅めの14分かかりました。

C問題

C - Compass Walking

2R以下の距離であれば最大2歩使えば到達できるという考えで解いてみる。

目標までのユーグリット距離をDとしたとき、D = Rなら1歩。

D \lt Rの場合は2歩。これがコーナーケース。

あとは、D \div Rを計算して、余りがでるなら商にプラス1した値が答えという感じで計算。

で、これで通るはずと思い、投げてみたら、大量のWAを喰らってしまう。。

intでなく、longで計算することで解決。どうも二乗がオーバーフローしてたみたい。

そんなこんなで、結局C完了まで40分以上かかってしまいました。

D問題 

D - Send More Money

どっかで見たタイトルだと思ったら、覆面算の問題。

解法としては、とりあえず全パターン試すしかないと思ったが、ことのほか実装がめんどくさそうで、コーディングに着手できない。

んで、よくよく順位表を見てるとEの方がAC多めだったので、いったんDは諦めてEに取り組むことにしました。

E問題

E - Unique Color

問題の見た感じ、木をDFSで探索して初めて遭遇する色の頂点のみを答えのリストに追加する感じでOKかと。

ということで、実装してみるがDFSを使う過去の実装例なんかを探すのにモタついてしまいまして、時間切れも心配になってくる状況に。

で、終了間際に投げてみたら、なぜか大量のWAが、、て答えにソートが必要なのを見落としてたー!

最終的に、答えをソートする実装を加えて投げたのが終了2分前。なんとかこの提出でACが取れましたとさ。

これが通るのと通らないのでは、レートも大分違ってたので、非常に嬉しいです。

F問題

F - Cube

問題文すら見れておりません。

これまでの実績

レートはHighest更新。水色に向けて着々と上がってきてます。

コンテスト実績

コンテスト実績

総括

今回、ギリギリでEが通せたので助かりましたが、道中まだまだ細かいミスが多いのが反省点ですね。今回のA問題以降は一度全て実装しなおして復習することで、同様のミスが出ないようにしたいと思います。

また、次回も頑張ります。