東京海上日動プログラミングコンテスト2023(AtCoder Beginner Contest 299)参加記

2023/4/22に開催された、東京海上日動プログラミングコンテスト2023(AtCoder Beginner Contest 299)に参加しました。

atcoder.jp

前回ABCは、DDosの影響でUnratedでした。もしや今回も同じことが起こるのかもという感じがしないでもないですが、まずはレートを上げていくため頑張ろうという感じで臨みます。

今回の結果

今回は4完で終了。

ABC299結果
ABC299結果

んで、コンテスト初っ端から提出ページが502を返したりしてたので、まさか今回もDDosが来てるのかと思いましたが、結局そのまさかでした。

開始30分を過ぎたところUnrated告知があったので、だいぶやる気が削がれましたが、なんとかD問題まで解いたという感じです。

振り返り

DDosの影響で提出が重かったり、Unratedになったりで、だいぶ提出が雑になったのが反省材料です。

ABC299提出結果
ABC299提出結果

A問題

A - Treasure Chest

愚直に先頭からループで回して、*が現れるまでに、|が丁度1回出現したかを判定すればよい。

これで問題なくACかな、、と思ってたら、そもそもinoutで答えなければいけないのに、YesNoで答えるというポカでWA。。

修正後ACで、4分52秒1ペナの1完。この辺から提出が重いなあということで、Unratedになるのではという予感はありました。

提出コード

https://atcoder.jp/contests/abc299/submissions/40832651

B問題

B - Trick Taking

プレイヤー1をとりあえずの勝者にしておき、現在見ている色をC_1、値をR_1で初期化。あとは、ループで各プレイヤーの出したカードの色と値を見ていく。

C_i = Tかつ、現在見ている色と異なる場合は、プレイヤーiを勝者にし、現在見ている色をC_i、値をR_iで置き換える。

C_iが、現在見ている色且つR_iが現在見ている値より大きい場合は、プレイヤーiを勝者にし、値をR_iで置き換える。

と、こんな感じで実装してみたものの、DDosの影響なのか、提出ページが開けずで、なかなか提出できず。。。

結局、5分ぐらい試しまくってなんとか提出。ACがとれましたとさ。16分2秒1ペナで2完です。

提出コード

https://atcoder.jp/contests/abc299/submissions/40841747

C問題

C - Dango

文字列Sの中に、o-が全く存在しない場合は、答えは-1となる。両方存在する場合は、oが最も多く連続した数が答えになる筈。

という感じで実装したら、場合分けがうまくいっておらずでWAを喰らってしまう。。

その後も、適当に色々修正して出してみるも、WAは治らず。もう大分検証も雑になってきたなあ、という感じです。

気を取り直して、まともに修正し、なんとかACを取り切りました。29分16秒4ペナで3完。

提出コード

https://atcoder.jp/contests/abc299/submissions/40851795

D問題

D - Find by Query

この時点で、すでにUnrated告知が出たので、大分モチベーションが下がっている状態でした。

それでもなんとか時間いっぱいは取り組んでみるかという感じで臨んだD問題。なんか一読した感じで二分探索する的な問題の様です。

ということで、素直に二分探索を組んでみましたが、そもそもクエリの出し方が全く合ってなかったり、計算そのものがおかしかったりで、都合2回もWAを喰らうという散々たる状態。

一旦、気を落ち着かせて、まともにローカルで検証したコードを出すことで、なんとかACを獲得することができましたとさ。

54分5秒6ペナで4完。

順位表を見ながら、Unrated確定なのに、他の人はかなり真面目に取り組んでいるんだなあと、しみじみと思ったりしておりました。

提出コード

https://atcoder.jp/contests/abc299/submissions/40864448

E問題

E - Nearest Black Vertex

一応、時間がそれなりにあるので、こちらも取り組んでみる。

浮かんだ解法としては、先ず全ての頂点を黒く塗っておき、指定された各頂点から、距離がd_i未満のところを全て白色で塗った時に黒の頂点が1つ以上あるかを判定するやり方。

が、、これで実装するも、WA。それもその筈で、指定された各頂点について、距離d_i丁度のところに黒の頂点があるかをチェックしないといけないよねと。

結果として、そのチェックの実装は時間内に行えず。ここで終了という形になりました。

F問題

F - Square Subsequence

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

G問題

G - Minimum Permutation

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

Ex問題

Ex - Dice Sum Infinity

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

これまでの実績

今回も、Unratedになったので、レート変化はありませんでした。

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

総括

今回は、開始直後からDDos影響で提出が重かったことで大分やる気を削がれた感があった回でした。

が、、コンテスト終了後、色々TLを眺めていると、Unratedが決まっていても、終了までちゃんと問題に取り組んでいる参加者が多いことが判り、半分雑に取り組んでいた自分の姿勢は、あまりよろしくないなあと思い知らされることになりました。

今回、2連続でUnratedになったことは残念でしたが、それで腐っていては自分の成長も見込めません。次回は、何があろうと最後まで最善を尽くしていこうと思います。

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