ユニークビジョンプログラミングコンテスト2022 夏(AtCoder Beginner Contest 268)参加記

2022/9/10に開催された、ユニークビジョンプログラミングコンテスト2022 夏(AtCoder Beginner Contest 268)に参加しました。

atcoder.jp

先週土曜のABCでは大きくレートを上げて、もう少しで水色到達というところまで来ることができましたが、日曜のARCで惨敗してしまい、水色への道は遠いものとなりました。

今回のABCでは、とりあえず日曜のARCの負け分を少しでも取り返そうという気持ちで臨むこととしました。

今回の結果

で、今回は、なんと3完で終了という体たらく。。

ABC268結果
ABC268結果

パフォーマンスは、なんとか緑を超えたところということで、先週日曜に続いてレートは暴落ということになりましたとさ。

振り返り

AとBは簡単すぎでしたが、C以降が難しすぎでした。

ABC268提出結果
ABC268提出結果

A問題

A - Five Integers

入力のA \sim EをSetに突っ込んで、サイズを出すだけの問題。

やるだけの実装をして提出。問題なくACが取れました。

1分27秒で1完。比較的早い方のタイム。

提出コード

https://atcoder.jp/contests/abc268/submissions/34726041

B問題

B - Prefix?

A問題に出てきそうなぐらい簡単な問題。サービス問題か?

Javaだと、文字列の接頭辞判定は、startsWithメソッドを使えば良いので、あとは実装するだけ。

問題なく、一度の提出でACが取れました。

2分46秒で2完。これまでの2完目のタイムで一番早いかも。

提出コード

https://atcoder.jp/contests/abc268/submissions/34728623

C問題

C - Chinese Restaurant

一読して、解法が全く思いつかず。。。B問題まで順調にきたはずが、この問題でだいぶ時間を浪費してしまうことに。

C問題を飛ばしてD問題以降をみてみるかと思ったが、順位表から見ると、後の問題もだいぶヤバそうな感じがするので、とりあえずC問題を解き切ろうと頑張ってみる。

悩んでいても仕方がないので、サンプル3の移動パターンの10ケースを全部計算してみて、答えになるものにどのような傾向があるのかを観ることにする。

すると、(N + p_i - i) \% Nの値でグループ化した時に、連続する3要素分の要素数の合計の最大が答えになるのではないかという予想が出てきた。

ということで、上記のとおり実装してみて提出。通るか不安でしたが、なんとか1回の提出でACを取り切ることができました。

49分59秒で3完。2完爆死があるかと思いましたが、なんとか回避することができました。

提出コード

https://atcoder.jp/contests/abc268/submissions/34746130

D問題

D - Unique Username

最初、問題文を読み解くのが大変だったが、雰囲気的には順列全探索をするやつだとわかった。

しかし単語間の"_"の数を調整して文字列を構築するのが、めちゃくちゃ実装が重くて、限られた時間内ではだいぶ厳しそう。

とりあえず、順列全探索のパートと、"_"の数を最大2個ぐらいまでつなげることができる突貫工事のようなプログラムを作ってみて提出してみるが、これはケースに蹴られてWA。

結局、実装が及ばずで、この時間で時間切れとなりました。

E問題

E - Chinese Restaurant (Three-Star Version)

問題はチラ見したものの、何もわからず。

F問題

F - Best Concatenation

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

G問題

G - Random Student ID

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

Ex問題

Ex - Taboo

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

これまでの実績

この2回の連敗で、だいぶレートを落としてしまいました。

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

総括

今回と前回のコンテストで、自分の実力不足を痛感することになりました。

とはいえ、これからやるべきことは、出来なかった部分を見直して、また次へと備えること。また、切り替えて次へ臨むこととします。

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