AtCoder Beginner Contest 241 (Sponsored by Panasonic) 参加記

2022/2/26に開催されたAtCoder Beginner Contest 241 (Sponsored by Panasonic) に参加しました。

atcoder.jp

実はこの日は飲み会などがあり、直前まで参加するかどうか迷ってたのですが、コンテスト開始の10分前に帰宅できたので、この際参加してみることにしました。

とりあえず毎度のことですが、レートが上げられるように頑張ろうという感じです。

今回の結果

で、、今回のABCはなんと3完という体たらく。。うーん、まあ比較的Dが難し目だったかなー。

ABC241結果
ABC241結果

今回も緑下位ぐらいのパフォーマンスということで、都合4連敗目を喰らう羽目になりましたとさ。

振り返り

D問題で完全に判断を誤ってしまいました。

ABC241提出結果
ABC241提出結果

A問題

A - Digit Machine

k = 0を初期値として、k = a_kという処理を3回行った時のkが答えとなる。

実装して、問題なくACを取ることが出来ました。

4分3秒で1完。

提出コード

https://atcoder.jp/contests/abc241/submissions/29664853

B問題

B - Pasta

配列A,B双方を昇順ソートしておき、マッチング処理を行う。

配列Bの要素が全てマッチする場合はYesと表示、それ以外はNoとする。

ちょっと、実装でもたついてしまい、時間は少しかかりましたが、こちらも問題なくACを取れました。

19分48秒で2完。

提出コード

https://atcoder.jp/contests/abc241/submissions/29677674

C問題

C - Connect 6

問題を一読すると、なんか五目並べならぬ、六目並べという感じがするこの問題。

全てのマスについて、右方向、下方向、右上方向、右下方向の連続6マスをチェックし、6マスの内4マス以上が黒く塗られていれば、あとは高々2つを塗ることで黒6つ以上の連続は可能となる。

あとは、範囲外の参照に気をつけながら実装すればOK。

ということで、少し実装に苦労したものの、あっさりとACが取れてくれましたとさ。

41分7秒で3完。ここぐらいで、2000位以内には行っていたので、もしかすると好成績いけるかという感触はありました。

提出コード

https://atcoder.jp/contests/abc241/submissions/29687610

D問題

D - Sequence Query

クエリを処理していく系の問題。愚直に実装するとTLEになるやつなので、なんらかの工夫は必要という感じだが、すぐにはわからん感じ。

とりあえず、ソート処理を全体で1回に抑えようという方針にしてみる。

数列Aを、ペアオブジェクト(x, 何回目のクエリで追加されたか)として配列で管理し、全てのクエリを先読みして数列に値を追加して1度昇順ソートする。その後、2と3のクエリを処理する際、二分探索で配列を探索する位置を決定し、何回目のクエリで追加された数字かを考慮しながら順に探索するという実装を行なってみた。

で、なんとかサンプルは通ったので、一度提出をしたみたところ、TLE、WA、REのトリプルパンチを食らってしまう。。

とりあえず色々見直してみるが、解決の糸口すら見えずで、このまま時間切れとなりましたとさ。

E問題

E - Putting Candies

ワンチャンあるかとチラ見をしてみるが、すぐにわかりそうにないため諦め。

F問題

F - Skate

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

G問題

G - Round Robin

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

Ex問題

Ex - Card Deck Score

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

これまでの実績

これで都合4連敗。。。。うーむ。。

コンテスト実績
コンテスト実績

総括

ここ最近のコンテストでは、なかなか思うような結果が出ず、壁にぶち当たっているような印象がしますが、ここを乗り越えてこそ自分の成長があるものと考えております。

今後も淡々と精進を行い、諦めずにコンテストの参加を継続していきます。

ということで、また次回も頑張ります。