キーエンスプログラミングコンテスト2023夏(AtCoder Beginner Contest 315)参加記

2023/8/19に開催された、キーエンスプログラミングコンテスト2023夏(AtCoder Beginner Contest 315)に参加しました。

atcoder.jp

先週、やっとのことで水色になれた思ってたら、翌日のAGCで惨敗して緑落ち。たった1日で水色コーダーの身分を剥奪されてしまいました。

今週は、並行で開催されているAHCに取り組んでいたので、アルゴリズムの精進もままならない状態でしたが、とりあえず先週のAGCの負け分を取り戻すという気持ちでコンテストに臨むことにしました。

今回の結果

なんとか、ギリギリで4完を確保できたという形になりました。。。

ABC315結果
ABC315結果

結果は緑パフォの下ぐらいという感じで負け。。負け分を取り戻すつもりが、結局、さらにレートを下げてしまうという結果になってしまいました。

振り返り

E問題で、思わぬ苦戦をしてしまいました。

ABC315提出結果
ABC315提出結果

A問題

A - tcdr

問題文の通り、Sから、a,e,i,o,uを取り除いて出力するだけ。

1分27秒で1完。

提出コード

https://atcoder.jp/contests/abc315/submissions/44708318

B問題

B - The Middle Day

最初に、1年の真ん中となる日数を求めておき、残り日数としておく。

後は、各月毎の日が残り日数より少ない場合、残り日数から月の日数を減らし、少なくない場合は、見ている月と残り日数が答えになる。

これも問題なくAC。5分16秒で2完。

提出コード

https://atcoder.jp/contests/abc313/submissions/44264969

C問題

C - Flavors

  • F_i毎の最大値を配列で管理し、ソート後値が大きい2つの値を足す。

  • F_i毎の値を別配列で管理し、各F_i毎に値をソート。それぞれの上位2つの値をs,tとし、s + \frac{t}{2}の最大値を計算する。

  • 上記2つのうち、値が大きい方が答え。

ソートしまくっているので、TLEが少し心配だったが、なんとかACが取れました。21分9秒で3完。

提出コード

https://atcoder.jp/contests/abc313/submissions/44272496

D問題

D - Magical Cookies

Cが終わったところで、順位表を見たら、どうもDが事故っている模様。。

代わりにEが伸びているようなので、とりあえずDはすっ飛ばしてE問題を優先することにしました。

E問題

E - Prerequisites

とりあえず、グラフに帰着できそうな問題。多分、本1を起点にDFSをしていき、読める本から順に答えに積んでいく実装でなんとかなるかというところ。

が、、実際DFSで組んで見たら、WAは無いものの、REを喰らってしまう!多分、StackOverflow系???

ならばと、今度はBFSっぽい実装をしてみるが今度はなぜかTLEを喰らってしまう。。

DFSっぽい動きであればなんとかなると想定してるが、実際に再帰で組んでしまうとスタックが持たないみたい。。

ならばと、Stackに読む対象の本を積んでいき、擬似的にDFSをするような実装をしてみる。すると、今度はなんとか通ってくれて、やっとのことでACが取れましたとさ。

96分32秒2ペナで4完。終了ギリギリでしたが、これが取れてないと緑パフォすら怪しい感じだったので、とりあえず通ってくれて良かったです。

提出コード

https://atcoder.jp/contests/abc315/submissions/44761683

F問題

F - Shortcuts

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

G問題

G - Ai + Bj + Ck = X (1 <= i, j, k <= N)

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

Ex問題

Ex - Typical Convolution Problem

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

これまでの実績

再度、入水が遠くなるところまで落とされてしまいました。また1から入水を目指さないと。。

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

総括

Eはトポロジカルソートやれば良かったやんという感じでした。。

先週、入水して浮かれていたら、いつの間にかいつもの緑上位あたりの定位置に戻ってきました。

これも精進不足が祟ってる証拠。これにめげずに再度入水に向けて精進を継続していきます。

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