日鉄ソリューションズプログラミングコンテスト2022(AtCoder Beginner Contest 257)参加記

2022/6/25に開催された、日鉄ソリューションズプログラミングコンテスト2022(AtCoder Beginner Contest 257)に参加しました。

atcoder.jp

ぶっちゃけ、この日は飲み会などがあり、コンディションは万全ではありませんでした。しかし、先週は所用で出れなかったこともあったので、今回はとりあえず参加してみようという気持ちで参加することとしました。

とりあえず、目標は水パフォです。

今回の結果

で、なんと今回は2完終了という、なんとも情けない結果となりました。。。

ABC257結果
ABC257結果

茶色パフォーマンスを叩き出してしまい、レートは暴落。悔しいのう。。

振り返り

あまり頭が回っておらず、C以降の考察がてんで進みませんでした。

ABC257提出結果
ABC257提出結果

A問題

A - A to Z String 2

とりあえず、問題文の通りに文字列を構築して、X番目の文字を出力すれば良い。

あとは、普通に実装して、提出。問題なくACが取れました。

2分59秒で1完。

提出コード

https://atcoder.jp/contests/abc257/submissions/32709174

B問題

B - 1D Pawn

配列Aに対して、以下の処理を行う。

  • L_i = Kの場合、A_{K} = max(A_{K} + 1, N)

  • 上記以外の場合は、A_{L_i} + 1 \ne A_{L_i + 1}なら、A_{L_i}をプラス1する。

実装にだいぶ手間取りましたが、なんとかACを取り切ることができました。

13分45秒で2完。少し時間がかかり過ぎかな。

提出コード

https://atcoder.jp/contests/abc257/submissions/32717845

C問題

C - Robot Takahashi

問題の意味はわかるが、場合分けがしんどそうなこの問題。

  • 全員大人か、全員子供の場合は、答えはN
  • 一番体重が大きい子供と一番体重が小さい大人を比較して、子供の方が小さい場合も答えはN
  • あとは、大人の体重をリストに突っ込んでソートした後、一番体重が大きい子供の体重で二分探索を行い、何人の大人より重いかを算出してその値をNから引く

という感じの実装を行い、サンプルまで通ったので出してみたが、これはWA。。。

ならばと、f(X)の引数となるXの値を、一番体重が大きい子供の体重の±1の値と、一番体重が小さい子供の体重の±1の値で試行し、答えを出してみるも、これもWA。。。

結局、ここらで考察が行き詰まってしまい、解く目処が立たなくなってしまいました。。

仕方ないので、30分程度を残して諦め。。後ろの問題に賭けてみることにしました。

D問題

D - Jumping Takahashi 2

Cを諦めた直後ぐらいに一読しましたが、解法がてんで思いつかないので、早々に諦め。

E問題

E - Addition and Multiplication 2

桁DPのやっていく問題かと思い、実装に取り掛かってみたものの、遷移が思いつかずで詰み。

F問題

F - Teleporter Setting

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

G問題

G - Prefix Concatenation

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

Ex問題

Ex - Dice Sum 2

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

これまでの実績

Highest更新目前で、またもレート暴落。。長い停滞モードが続いております。

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

総括

今回は、D以降が水Diff以上だったようですが、それにしてもC問題が解けなったのは残念でなりません。

あまりコンディションが万全でなかったのも敗因ですが、やはりまだ実力が不足しているというのが本当のところでしょう。今回の問題も復習して次回に備えたいと思います。

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